Fichier sous GW-Basic
Modérateur : Politburo
- leglatin
- Fonctionne à 1200 bauds

- Messages : 748
- Inscription : 03 févr. 2003 20:46
- Localisation : Berville-sur-Mer (27)
- Contact :
Fichier sous GW-Basic
J'ai un petit souci : j'ai écrit un programme sous GW-Basic qui utilise un fichier en lecture (OPEN "ESSAI.BIN" FOR INPUT AS #1) et lorsque j'en récupère les données (A$=INPUT$(1,#1)) ça marche, mais lorsque l'octet rencontré est 1Ah (26), c'est considéré comme étant la fin du fichier et le prgm ne peut donc pas lire les données suivantes dudit fichier...
Quelqu'un aurait une solution ?
Quelqu'un aurait une solution ?
Commodore 7970 - Texas Instruments TI-30, 57, 74, 80, 81, 82, 83, 85, 86, 89, 92 - Casio PB-100, PB-110, PB-410, PB-500, PB-700, PB-770, FA-3, FA-4, FA-5, FA-10, FA-11, FA-20, FP-12, CM-1, OR-1, OR-1(E), OR-4, OR-8, RC-2, RC-4 - Canon X-07 - Philips VG8020, NMS8255, VY0010, VY0011, VS0080, D6450, VW0030, SBC3810, NMS1112, NMS1150, NMS1170 - Atari 1040 STE
- Administrateur

- Messages : 5813
- Inscription : 24 mai 2002 16:55
- Localisation : Toulouse
- Contact :
Re: Fichier sous GW-Basic
Salut,
Je pense que ce n'est pas la méthode la plus appropriée.
Essaie plutôt un truc du genre :
Initialisation du pointeur de lecture I à 1 (le & indique un entier)
Ouverture du fichier en accès direct, taille des blocs = 1 octet
Assignation d'un champ de 1 octet à A$ (en l'occurence le bloc ne contient qu'un champ)
Boucle de lecture jusqu'a la fin du fichier
Lecture de l'octet n° I
Incrément du pointeur de lecture
Affichage du code ASCII de A$
Fin de Boucle
Fermeture du fichier
A+
J'ai l'impression que tu veux lire un fichier binaire octet par octet mais en l'ouvrant par accès séquentiel (OPEN ... FOR INPUT AS ...).leglatin a écrit :J'ai un petit souci : j'ai écrit un programme sous GW-Basic qui utilise un fichier en lecture (OPEN "ESSAI.BIN" FOR INPUT AS #1) et lorsque j'en récupère les données (A$=INPUT$(1,#1)) ça marche, mais lorsque l'octet rencontré est 1Ah (26), c'est considéré comme étant la fin du fichier et le prgm ne peut donc pas lire les données suivantes dudit fichier...
Quelqu'un aurait une solution ?
Je pense que ce n'est pas la méthode la plus appropriée.
Essaie plutôt un truc du genre :
Code : Tout sélectionner
I& = 1
OPEN "R", #1, "ESSAI.BIN", 1
FIELD #1, 1 AS A$
DO UNTIL (EOF(1))
GET #1, I&
I& = I& + 1
PRINT ASC(A$)
LOOP
CLOSE #1Ouverture du fichier en accès direct, taille des blocs = 1 octet
Assignation d'un champ de 1 octet à A$ (en l'occurence le bloc ne contient qu'un champ)
Boucle de lecture jusqu'a la fin du fichier
Lecture de l'octet n° I
Incrément du pointeur de lecture
Affichage du code ASCII de A$
Fin de Boucle
Fermeture du fichier
A+
- jojo
- Fonctionne à 1200 bauds

- Messages : 369
- Inscription : 28 juin 2006 21:28
- Localisation : Entre la France, la Suisse et l'Italie ... au pays du bien décolleté.
Re: Fichier sous GW-Basic
Bonjour tous les deux.Pocket a écrit : Essaie plutôt un truc du genre :Code : Tout sélectionner
I& = 1 OPEN "R", #1, "ESSAI.BIN", 1 FIELD #1, 1 AS A$ DO UNTIL (EOF(1)) GET #1, I& I& = I& + 1 PRINT ASC(A$) LOOP CLOSE #1
Je pense que le programme devrait s'écrire ainsi:
10 I% = 1
20 OPEN "R", #1, "ESSAI.BIN", 1
30 FIELD #1, 1 AS A$
40 WHILE NOT (EOF(1))
50 GET #1, I%
60 I% = I% + 1
70 PRINT ASC(A$)
80 WEND
90 CLOSE #1
Cordialement,
Georges.
- Administrateur

- Messages : 5813
- Inscription : 24 mai 2002 16:55
- Localisation : Toulouse
- Contact :
Re: Fichier sous GW-Basic
Salut,
Ton exemple est l'exacte expression de ma pensée en GWBASIC
.
A+
Sorry, tu as parfaitement raison, je me suis gauffré et j'ai donné un exemple en QBASIC.jojo a écrit :Amha, si Leglatin a écrit son programme en Gw-Basic, ça ne marchera pas, l'instruction DO UNTIL ... LOOP n'existe pas en GW-Basic ... et il faut numéroter les lignes !
Ah, et puis, pour les entiers, c'est %
Ton exemple est l'exacte expression de ma pensée en GWBASIC
A+
- jojo
- Fonctionne à 1200 bauds

- Messages : 369
- Inscription : 28 juin 2006 21:28
- Localisation : Entre la France, la Suisse et l'Italie ... au pays du bien décolleté.
Re: Fichier sous GW-Basic
P't'être que ça donnera envie à Leglatin de programmer en QBasicPocket a écrit :Salut,
Sorry, tu as parfaitement raison, je me suis gauffré et j'ai donné un exemple en QBASIC.
Ton exemple est l'exacte expression de ma pensée en GWBASIC![]()
![]()
A+
- leglatin
- Fonctionne à 1200 bauds

- Messages : 748
- Inscription : 03 févr. 2003 20:46
- Localisation : Berville-sur-Mer (27)
- Contact :
Merci à vous deux pour vos réponses 
C'est pour finir de mettre au point mes routines de transfert IBM-PC <-> Casio PB-700, je ne savais pas que l'on pouvait faire de l'accès direct comme ça et ça va bien m'aider.
(Sujet réglé)
C'est pour finir de mettre au point mes routines de transfert IBM-PC <-> Casio PB-700, je ne savais pas que l'on pouvait faire de l'accès direct comme ça et ça va bien m'aider.
(Sujet réglé)
Commodore 7970 - Texas Instruments TI-30, 57, 74, 80, 81, 82, 83, 85, 86, 89, 92 - Casio PB-100, PB-110, PB-410, PB-500, PB-700, PB-770, FA-3, FA-4, FA-5, FA-10, FA-11, FA-20, FP-12, CM-1, OR-1, OR-1(E), OR-4, OR-8, RC-2, RC-4 - Canon X-07 - Philips VG8020, NMS8255, VY0010, VY0011, VS0080, D6450, VW0030, SBC3810, NMS1112, NMS1150, NMS1170 - Atari 1040 STE


