Erreur code source pascal
Résolu/Fermé
glennog
Messages postés
293
Date d'inscription
jeudi 3 janvier 2013
Statut
Membre
Dernière intervention
19 novembre 2013
-
6 févr. 2013 à 01:08
glennog Messages postés 293 Date d'inscription jeudi 3 janvier 2013 Statut Membre Dernière intervention 19 novembre 2013 - 6 févr. 2013 à 02:18
glennog Messages postés 293 Date d'inscription jeudi 3 janvier 2013 Statut Membre Dernière intervention 19 novembre 2013 - 6 févr. 2013 à 02:18
A voir également:
- Erreur code source pascal
- Consultez le code source de cette page. copiez la ligne indiquant aux moteurs de recherche de ne pas référencer la page. ✓ - Forum Référencement
- Turbo pascal download - Télécharger - Édition & Programmation
- Code erreur s05-05 - Forum Téléviseurs
- Modifier code source page web ✓ - Forum Webmastering
- Code erreur 80072efe windows 7 ✓ - Forum Windows 7
2 réponses
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
6 févr. 2013 à 01:36
6 févr. 2013 à 01:36
C'est à ce moment là qu'il faut te servir des {$I-} et {$I+} dont on parlais dans ta discussion précédent À quoi sert {$I-} ou {$i+} dans programme PASCAL, afin de savoir à quelle étape du programme ça plante !
En l'occurence, le problème est dans le read, car en faisant un rewrite, tu effaces toutes les données du fichier, puis tu fais un write pour écrire dans le fichier, mais ta tête de lecture est alors à la fin du fichier, et il n'y a rien à lire à cet endroit là.
Pour lire la valeur que tu as écrite juste avant, il faut revenir au début du fichier avec seek.
En l'occurence, le problème est dans le read, car en faisant un rewrite, tu effaces toutes les données du fichier, puis tu fais un write pour écrire dans le fichier, mais ta tête de lecture est alors à la fin du fichier, et il n'y a rien à lire à cet endroit là.
Pour lire la valeur que tu as écrite juste avant, il faut revenir au début du fichier avec seek.
program exemple;
uses KX;
type fichier = file of integer;
procedure traceIO(text:string);
var io:integer;
begin
io:=IOResult;
if io=0
then writeln(text,' : OK')
else writeln(text,' : Error ',io);
end;
var
nombre : integer;
ffichier : fichier;
begin
nombre := 5;
{$I-}
assign(ffichier,'fichier.txt');
traceIO('assign');
rewrite(ffichier);
traceIO('rewrite');
write(ffichier,nombre);
traceIO('write');
nombre:=0;
seek(ffichier,0);
traceIO('seek');
read(ffichier,nombre);
traceIO('read');
{$I+}
writeln('nombre lu = ',nombre);
end.
glennog
Messages postés
293
Date d'inscription
jeudi 3 janvier 2013
Statut
Membre
Dernière intervention
19 novembre 2013
4
6 févr. 2013 à 02:18
6 févr. 2013 à 02:18
merci beaucoup pour ta correction et tes commentaires , ta correction repond à plusieurs questions que je me posais ,
merci
merci