salut
je suis faible en pascal.
mon problème est savoir comment stocker dans un fichier texte une liste chainée et la sauvegarder dans le fichier;
merci beaucoup à tous .
salut
je suis faible en pascal.
mon problème est savoir comment stocker dans un fichier texte une liste chainée et la sauvegarder dans le fichier;
merci beaucoup à tous .
est ce une phrase à la mode sur le forum?je suis faible en pascal
Et garder une liste chainée dans un fichier ne releve pas du tout du pascal. Il faut d'abord savoir ce qu'on doit faire (phase papier+crayon+paire de neurones) ensuite on essaie de coder en pascal ce qu'on a retenu comme solution.
merci darrylsite
Bonjour,
La première étape pour toi est de créer une routine qui parcourt simplement la liste chaînée. Tu pourras ensuite t'en servir comme ossature et y greffer le code d'écriture dans le fichier.
As-tu déjà réalisé la première étape ?![]()
Règles du forum
Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
Mes tutoriels et sources Pascal
Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]
Bonsoir;
J'ai essayé mais ce n'est pas résolu.
Voilà mon code :
Enfin merci et bonne nuit.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 program fichier; uses wincrt; type pointeur=^personne; personne=record nom:string; suivant:pointeur; end; var debut,courant:pointeur; rep:char; f:text; begin assign(f,'c:\wahiba.txt') ; rewrite(f); new(debut); courant:=debut; repeat write('entrez le nom : '); readln (courant^.nom); read (f,courant^.nom); write ('outre element o/n?: '); readln (rep); if rep='o' then begin new(courant^.suivant); courant:=courant^.suivant;end else courant^.suivant:=nil; until rep='n'; close (f); assign (f,'c:\wahiba.txt'); reset (f); while not eof (f) do begin read (f,courant^.nom); writeln (' voila la liste'); writeln('nom ',courant^.nom); courant:=courant^.suivant; end; close (f); end.
Je n'ai pas eu le temps de regarder attentivement ton code mais un problème saute immédiatement aux yeux : pour écrire dans le fichier, c'est write et non read qu'il faut utiliser.![]()
Règles du forum
Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
Mes tutoriels et sources Pascal
Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]
Le programme marche bien. Mais il n'est pas tres propre. Ce sera mieux si tu separais chaque partie du programme : une procedure pour la creation de la liste chainée, une autre procedure pour la sauvegarde des données dans le fichier, une procedure pour restorer la liste à partir du fichier, ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 program fichier; uses crt; type pointeur=^personne; personne=record nom:string; suivant:pointeur; end; var debut,courant:pointeur; rep:char; f:text; begin assign(f,'c:\wahiba.txt') ; rewrite(f); new(debut); courant:=debut; repeat write('entrez le nom : '); readln (courant^.nom); write (f,courant^.nom); write ('outre element o/n?: '); readln (rep); if rep='o' then begin new(courant^.suivant); courant:=courant^.suivant;end else courant^.suivant:=nil; until rep='n'; close (f); reset (f); while not eof (f) do begin read (f,courant^.nom); writeln (' voila la liste'); writeln('nom ',courant^.nom); courant:=courant^.suivant; end; close (f); end.
je te donne encore un sacré boulot hein?![]()
Partager