FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Bataille terrestre
Fichiers Emptypar jjn4 Aujourd'hui à 14:21

» item_index
Fichiers Emptypar leclode Aujourd'hui à 14:07

» SineCube
Fichiers Emptypar Marc Hier à 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Fichiers Emptypar Marc Hier à 12:22

» Philharmusique
Fichiers Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
Fichiers Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
Fichiers Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Fichiers Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Fichiers Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Fichiers Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Fichiers Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0
Fichiers Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Fichiers Emptypar Klaus Lun 6 Mai 2024 - 11:41

» Gestion d'un système client-serveur.
Fichiers Emptypar Klaus Lun 6 Mai 2024 - 10:23

» @Jack
Fichiers Emptypar Jack Mar 30 Avr 2024 - 20:40

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le Deal du moment : -21%
LEGO® Icons 10329 Les Plantes Miniatures, ...
Voir le deal
39.59 €

 

 Fichiers

Aller en bas 
3 participants
AuteurMessage
jasym




Nombre de messages : 23
Date d'inscription : 16/01/2014

Fichiers Empty
MessageSujet: Fichiers   Fichiers EmptyJeu 13 Fév 2014 - 16:40

Bonjour,

J'essaie d'écrire et lire un fichier. Première tentative réussie.
Mais cela n'est vrai que pour des transferts de 1 octet!!!

Je travaille en fichiers binaires. Comment peut-on écrire un
nombre entier dans un fichier? En BASIC il suffisait de spécifier
le nombre d'octets nécessaires pour loger un nombre.

En examinant les instructions et le manuel de l'utilisateur je
n'arrive à rien de rien. Pas moyen de loger un simple nombre
entier dans un fichier. Quel est votre truc?

Jasym
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Fichiers Empty
MessageSujet: Re: Fichiers   Fichiers EmptyJeu 13 Fév 2014 - 17:01

Bonjour jasym,

Est-ce que tu utilises bien les instructions panoramic spécifiques pour les fichiers binaires ? ce sont des fonctions que j'utilise régulièrement, et je t'assure qu'elles ne posent aucun problème:
Ouverture: FILEBIN_OPEN_READ ou WRITE, ou APPEND
Lecture/Écriture: FILEBIN_READ lecture d'un octet, FILEBIN_BLOCK_READ lecture d'une série d'octets, FILEBIN_WRITE et FILEBIN_BLOCK_WRITE pour écrire un ou une série d'octets...
Fermeture: FILEBIN_CLOSE

Donne un exemple de ce que tu fais, pour voir...

PS dans un fichier binaire, on ne précise pas qu'on écrit un nombre entier ou n'importe quoi d'autre, ce sont des octets binaires, c'est tout.
C'est à toi de préciser si la valeur que tu écris fait un, deux ou n'importe quel nombre d'octets.
Tu dis à la fonction que tu veux écrire 5 octets, elle se fiche de ce qu'il y a dedans, ce sont 5 valeurs consécutives entre 0 et 255, c'est tout.
Revenir en haut Aller en bas
jasym




Nombre de messages : 23
Date d'inscription : 16/01/2014

Fichiers Empty
MessageSujet: Fichiers   Fichiers EmptyJeu 13 Fév 2014 - 17:41

Bonjour JL35,

J'utilise les bonnes instructions.

Pour écrire une variable, par exemple nb% = 856 le message d'erreur
mentionne que je ne peux utiliser une valeur au-dessus de 255.
Certes, il n'y a qu'un octet de disponible!

Alors comment écrire au fichier une valeur de 856 ou 230538?
Et si je ne sais pas d'avance la valeur de la variable?

J'utilise FILEBIN_WRITE N,V .

Faut-il que je décortique la variable en n octets et que je fasse une routine
pour l'enregistrer? C'est affreux!

J'ai essayé avec FILEBIN_HEXA_WRITE N, C, S mais je ne comprends pas
l'usage de cette instruction.

Jasym
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Fichiers Empty
MessageSujet: Re: Fichiers   Fichiers EmptyJeu 13 Fév 2014 - 18:00

Mais oui, il faut que tu décortiques la variable pour la décomposer en octets élémentaires, pour l'écrire dans ton fichier octet par octet.
Dans un fichier binaire on n'écrit que du binaire, des octets, il n'y a pas de notion d'entier, d'alphanumérique ou quoi que ce soit, ce sont des valeurs individuelles comprises entre 0 et 255, et c'est tout, il n'y a aucune interprétation de ces valeurs.
Ou bien tu fais un programme qui réduit ta valeur en octets, par divisions successives par 256 (ce n'est pas bien difficile), ou bien tu utilises les fonctions chaînes pour écrire tes valeurs en ascii, mais alors ce ne sont plus les instructions fichiers mode binaire mais fichiers mode ascii.
Le Filebin_Hexa_Write te permet d'exprimer tes valeurs en hexacécimal, mais ce sera toujours octet par octet, sous forme d'une chaîne de caractères.
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Fichiers Empty
MessageSujet: Re: Fichiers   Fichiers EmptyJeu 13 Fév 2014 - 18:13

Si je reprends ta valeur de 230538 ci-dessus, tu peux l'écrire en binaire en la convertissant d'abord en hexadécimal (c'est la fonction HEX$ qui fait le boulot de conversion en binaire, sous forme hexa):

Code:
dim a, h$, f$
f$ = "Z:\bin": ' fichier résultat
a = 230538: ' valeur à écrire en binaire

h$ = hex$(a): ' conversion en notation hexadécimale
IF BIN_AND(LEN(h$),1) = 1 THEN h$ = "0"+h$: ' nombre impair de caractères
print h$: ' pour voir

filebin_open_write 1,f$
filebin_hexa_write 1,len(h$)/2,h$
filebin_close 1
malheureusement la fonction hex$ peut donner un nombre impair de caractères (c'est le cas ici), il faut tester pour rajouter un zéro en tête, parce que le filebin_hexa_write exige un nombre pair, chaque groupe de deux caractères représentant un octet, de poids plus ou moins fort suivant sa position dans la chaîne.

NB la fonction HEX$ n'accepte que des entiers (<= 2147483647, ce qui donne en hexa 7FFFFFFF)
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12295
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Fichiers Empty
MessageSujet: Re: Fichiers   Fichiers EmptyJeu 13 Fév 2014 - 22:39

Pour accéder les fichiers binaires, tu peux aussi, avantageusement, utiliser les fonction de gestion de fichiers binaires de KGF.dll. C'est beaucoup plus souple que les commandes Panoramic, et beaucoup plus puissant.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
jasym




Nombre de messages : 23
Date d'inscription : 16/01/2014

Fichiers Empty
MessageSujet: fichiers   Fichiers EmptyJeu 13 Fév 2014 - 23:15

JL35 a écrit:
Si je reprends ta valeur de 230538 ci-dessus, tu peux l'écrire en binaire en la convertissant d'abord en hexadécimal (c'est la fonction HEX$ qui fait le boulot de conversion en binaire, sous forme hexa):

Code:
dim a, h$, f$
f$ = "Z:\bin": ' fichier résultat
a = 230538: ' valeur à écrire en binaire

h$ = hex$(a): ' conversion en notation hexadécimale
IF BIN_AND(LEN(h$),1) = 1 THEN h$ = "0"+h$: ' nombre impair de caractères
print h$: ' pour voir

filebin_open_write 1,f$
filebin_hexa_write 1,len(h$)/2,h$
filebin_close 1
malheureusement la fonction hex$ peut donner un nombre impair de caractères (c'est le cas ici), il faut tester pour rajouter un zéro en tête, parce que le filebin_hexa_write exige un nombre pair, chaque groupe de deux caractères représentant un octet, de poids plus ou moins fort suivant sa position dans la chaîne.

NB la fonction HEX$ n'accepte que des entiers (<= 2147483647, ce qui donne en hexa 7FFFFFFF)

Un grand merci JL35. Je suis O.K. pour enregistrer jusqu'à 8 octets. Mais pour lire! C'est impossible... Il faut donc prévoir d'avance un enregistrement régulier, par exemple tout en 4 octets. Au pire en 8 octets mais cela nolise de la mémoire inutilement. En BASIC c'était plus facile de gérer l'espace mémoire. Pour collecter des
données en 16 bits, il suffit alors d'utiliser 4 octets en régulier.

Jasym
Revenir en haut Aller en bas
jasym




Nombre de messages : 23
Date d'inscription : 16/01/2014

Fichiers Empty
MessageSujet: FICHIERS   Fichiers EmptyVen 14 Fév 2014 - 0:16

Klaus a écrit:
Pour accéder les fichiers binaires, tu peux aussi, avantageusement, utiliser les fonction de gestion de fichiers binaires de KGF.dll. C'est beaucoup plus souple que les commandes Panoramic, et beaucoup plus puissant.

Merci Klaus,

Je pense avoir repérer le fichier pertinent dont KGF.pdf.

J'ai survolé rapidement. Je ferai des essais quand je serai un peu mieux autonome dans Panoramic.
Pour l'instant c'est encore une montagne pour moi.

Je t'en ferai écho.

Jasym
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12295
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Fichiers Empty
MessageSujet: Re: Fichiers   Fichiers EmptyVen 14 Fév 2014 - 0:23

Juste un petit conseil: si possible, utilise KGF.chm au lieu de KGF.pdf.

Le contenu est identique, mais tu as la navigation facile des fichiers d'aide de Microsoft. C'est beaucoup plus compact et beaucoup plus rapide.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





Fichiers Empty
MessageSujet: Re: Fichiers   Fichiers Empty

Revenir en haut Aller en bas
 
Fichiers
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» fichiers .csv
» Fichiers HTML
» Editeur de fichiers INI
»  Exécution des fichiers CPL
» Gestion de mes fichiers

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: