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
» Logiciel de planétarium.
Fichiers Emptypar Pedro Sam 23 Nov 2024 - 15:50

» Un autre pense-bête...
Fichiers Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Fichiers Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Fichiers Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Fichiers Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Fichiers Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Fichiers Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Fichiers Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Fichiers Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Fichiers Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Fichiers Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Fichiers Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Fichiers Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Fichiers Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Fichiers Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le deal à ne pas rater :
Code promo Nike : -25% dès 50€ d’achats sur tout le site Nike
Voir le deal

 

 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 : 7112
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 : 7112
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 : 7112
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 : 12331
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 : 12331
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
» GESTION DE FICHIERS
» Fichiers HTML
» Editeur de fichiers INI
»  Exécution des fichiers CPL

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: