problème de lecture d'un fichier en cobol - Divers - Programmation
Marsh Posté le 10-05-2006 à 17:26:47
Donne au moins la commande qui accede au fichier .dat
et peux tu préciser quelle est la taille de ton .dat ?
d'où est-ce qu'il vient ? généré par un programme ?
il viens de ta machine ou d'une autre ?
Marsh Posté le 10-05-2006 à 18:39:04
voila la partie qui pose problème :
move 'O' to vnvres
move 'N' to vretourmenu
perform until vretourmenu <> 'N'
perform until vnvres <> 'O'
move 12 to ligne
initialize trouve
display plg-titre
display plg-3
display plg-3-1
accept compet
open i-o fi-skieur
perform varying i from 1 by 1 until finfichier
read fi-skieur next
perform varying j from 1 by 1 until j>10
or trouve = 1
if refcomp(j) = compet then
move 1 to trouve
end-if
end-perform
end-perform
close fi-skieur
if trouve = 1 then
display plg-3-2
open i-o fi-skieur
perform until finfichier
read fi-skieur next
initialize trouve
perform varying i from 1 by 1 until i>10
or trouve = 1
if refcomp(i) = compet
and rang(i) not = 0 then
move 1 to trouve
move rang(i) to indice
move nomski to tab-rang(indice)
end-if
end-perform
end-perform
close fi-skieur
perform varying j from 1 by 1 until j>10 or
tab-rang(j) = spaces
display plg-3-8
compute ligne = ligne + 1
end-perform
else
display plg-3-7
end-if
display plg-3-4
accept vnvres
if (vnvres = 'N') then
display plg-3-5
accept vretourmenu
if (vretourmenu = 'N') then
display plg-fini
exit
end-if
if (vretourmenu = 'O') then
display plg-titre
display plg-menu
end-if
end-if
end-perform
end-perform.
Quand c'est lancé, il me dit met le message d'erreur et surligne la ligne qui lit le fichier juste après l'avoir ouvert et commentcer une boucle tant qu'on est pas à la fin du fichier.
Voila.
En espérent quevous trouverez la solution.
Merci
Marsh Posté le 10-05-2006 à 18:50:47
L'erreur est le read qui se trouve a la ligne 13 du code affiché.
Le nom du fichier .dat est fi-skieur.dat, il fait 315 de long et il se trouve dans le meme dossier que le fichier .cbl
Marsh Posté le 10-05-2006 à 19:01:26
Le message semble indiquer un problème de définition, donc un problème qui se situerait dans l'Environment ou la Data Division.
Pour des explications et des exemples, voir http://members.aol.com/CobolHouse/cobolma1.htm#files
Marsh Posté le 10-05-2006 à 19:25:15
Regarde là : http://cobol.2000.free.fr/page.php [...] =cobol#ch7
la partie sur les fichiers
en particulier DATA RECORD,
c'est peut etre ce que ton erreur te demande.
Marsh Posté le 10-05-2006 à 19:52:11
merci pour ces réponses mais je ne vois pas pourkoi mon code ne marche pas. j'ai bien les select au début, le read....
Marsh Posté le 18-06-2007 à 18:13:12
alexletiti a écrit : bonjour, |
remontée de topic pour une question con : ton fichier est vide ? (no current record)
- lors de la 1e lecture, si t'as pas de test de fichier vide ca plante...
edit : pour le fichier vide le "file-status" c'est 90, en général on teste là-dessus pour toute lecture de fichier...
Marsh Posté le 10-05-2006 à 16:29:27
bonjour,
je fais un petit programme qui doit acceéder a un fichier .dat.
quand je l'exécute, j'ai un message qui dit :
146 no current reccord defined for sequential read fi-skieur.dat.
fi-skieur.dat étant mon fichier .dat
Merci de bien vouloir m'aider en me disant les causes de cette erreur.
Merci