Fichier sous GW-Basic

Une machine en panne, cassée ? Un mode de fonctionnement incompréhensible ? Exprimez-vous ici

Modérateur : Politburo

Répondre
Avatar de l’utilisateur
leglatin
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 748
Inscription : 03 févr. 2003 20:46
Localisation : Berville-sur-Mer (27)
Contact :

Fichier sous GW-Basic

Message par leglatin » 20 juil. 2006 07:23

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 ?
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

Avatar de l’utilisateur
Pocket
Administrateur
Administrateur
Messages : 5813
Inscription : 24 mai 2002 16:55
Localisation : Toulouse
Contact :

Re: Fichier sous GW-Basic

Message par Pocket » 20 juil. 2006 09:44

Salut,
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 ?
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 ...).
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 #1
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+
Pocket, voit tout, sait tout, lit l'avenir dans les entrailles d'une base phpBB ...
Image

Avatar de l’utilisateur
jojo
Fonctionne à 1200 bauds
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

Message par jojo » 20 juil. 2006 14:27

8O 8O
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
Bonjour tous les deux.

:? 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 % :wink:

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.

Avatar de l’utilisateur
Pocket
Administrateur
Administrateur
Messages : 5813
Inscription : 24 mai 2002 16:55
Localisation : Toulouse
Contact :

Re: Fichier sous GW-Basic

Message par Pocket » 20 juil. 2006 17:07

Salut,
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 % :wink:
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 :wink: :D .

A+
Pocket, voit tout, sait tout, lit l'avenir dans les entrailles d'une base phpBB ...
Image

Avatar de l’utilisateur
jojo
Fonctionne à 1200 bauds
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

Message par jojo » 20 juil. 2006 17:16

Pocket 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 :wink: :D
A+
P't'être que ça donnera envie à Leglatin de programmer en QBasic :?: :lol:

Avatar de l’utilisateur
leglatin
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 748
Inscription : 03 févr. 2003 20:46
Localisation : Berville-sur-Mer (27)
Contact :

Message par leglatin » 20 juil. 2006 17:55

Merci à vous deux pour vos réponses 8)
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

Répondre

Revenir vers « Problèmes techniques »