|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : novembre 2012 Messages : 6 ![]() |
Bonjour, je rencontre actuellement des difficultés pour écrire des données d'un tableau dans un fichier. Le programme compile bien, le fichier est bien créé, mais lors de son ouverture, il est vide.
Voilà mon code Pascal : Code :
|
||
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() ![]() Inscription : août 2006 Messages : 3 418 ![]() |
Hoa,
Piège classique de rewrite : - Si le fichier n'existe pas, il est créé - S'il existe, il est ouvert et vidé !! Je n'ai rien regardé d'autre, déjà corriger ça.
__________________
Il court en ce moment une espèce de grippe, mais elle ne court pas très vite, car on peut l'attraper sans courir. |
|
|
10
|
|
|
#3 |
![]() ![]() Inscription : avril 2002 Messages : 2 275 ![]() |
A chaque tour de boucle, tu désignes le fichier (Assign), tu l'ouvres en écriture en le vidant (rewrite), tu écris 1 record et tu le fermes. Il faut mettre le assign, rewrite et close en dehors de la boucle d'écriture
__________________
M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal |
|
|
00
|
|
|
#4 | ||
|
Invité de passage
![]() Inscription : novembre 2012 Messages : 6 ![]() |
Merci à vous, mais en les plaçant avant, sauf le close que j'ai mis entre les deux "end", la compilation est réussie mais après avoir compléter, on me signale "runtime error 103..."
Code :
|
||
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : novembre 2012 Messages : 6 ![]() |
Voyez vous? j'ai aussi un autre problème avec un autre sous programme qui marche très bien, toutefois le problème est que les données sont en mémoire uniquement lors de l'exécution,après fermeture et réouverture du programme plus aucune donnée sauvegardée, comment faire? Merci beaucoup d'avance
|
|
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() ![]() Inscription : août 2006 Messages : 3 418 ![]() |
Qie,
Pour commencer, as-tu compris que chaque utilisation de rewrite vide le fichier ? Pour utiliser un fichier : - On teste son existence NON ==> on le crée (avec rewrite) OUI ==> on passe à la suite ... lecture, ... et on n'oublie pas de le fermer quand on a fini.
__________________
Il court en ce moment une espèce de grippe, mais elle ne court pas très vite, car on peut l'attraper sans courir. |
|
|
10
|
|
|
#7 |
|
Invité de passage
![]() Inscription : novembre 2012 Messages : 6 ![]() |
Oui ça j'ai bien compris,merci, je n'avais pas fais attention à cela, mais comment ce fait-il que maintenant plus de compilation? .
|
|
|
00
|
|
|
#8 | ||
|
Expert Confirmé
![]() ![]() Inscription : août 2006 Messages : 3 418 ![]() |
Qua,
Il faudrait en montrer plus. Manifestement, classesChambre est déclaré somme type de fichier, et des instructions comme Code :
Pour ta procédure, la variable est Tab, et comme il s'agit d'un fichier, tu ne peux pas l'utiliser avec un indice comme Tab[i] !! Je crois qu'il faut que tu retournes voir un cours.
__________________
Il court en ce moment une espèce de grippe, mais elle ne court pas très vite, car on peut l'attraper sans courir. |
||
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : novembre 2012 Messages : 6 ![]() |
Classeschambre(avec un s) est bien un fichier que j'ai déclaré(voir mon 1er message), et Tab est bien un tableau et non pas un fichier, donc normalement je peux mettre l'indice.
|
|
|
00
|
|
|
#10 | |
|
Expert Confirmé
![]() ![]() Inscription : août 2006 Messages : 3 418 ![]() |
Hoa,
Citation:
Code :
procedure descriptionHotel( var Tab : classeChambre); Et cette fois j'ajoute : il faut carrément le reprendre à zéro, et ne pas vouloir courir avant de savoir marcher.
__________________
Il court en ce moment une espèce de grippe, mais elle ne court pas très vite, car on peut l'attraper sans courir. |
|
|
|
00
|
|
|
#11 | ||
|
Membre Expert
![]() Inscription : septembre 2009 Messages : 980 ![]() |
Voici un exemple de correction fonctionnelle, qui à mon sens est la façon la plus "propre" à utiliser dans un programme Pascal.
Ne sachant pas quel compilateur tu utilise, j'ai fait un code compatible (en toute logique) pour Turbo Pascal. J'ai commenté sommairement pour que tu comprenne les mécanismes mis en place, ce qui n'est pas commenté est, je pense, facile à comprendre. Tu peux voir le résultat dans l’aperçu. Donc maintenant, bonne analyse ! Code :
__________________
[ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ] Ma messagerie n'est pas la succursale du forum... merci! |
||
|
|
20
|
|
|
#12 |
|
Invité de passage
![]() Inscription : novembre 2012 Messages : 6 ![]() |
Merci beaucoup Dr.Who ! j'utilise geany mais le programme est fonctionnelle, je vais me mettre maintenant à l'analyse ! merci encore et bonne fin de journée
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com