Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1220 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  File et tableau de record

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

File et tableau de record

n°1323311
Siron
Posté le 11-03-2006 à 13:51:11  profilanswer
 

Bonjour.
 
En pascal, puis-je écrire dans un file de type file of un tableau de record comme ceci :
 
write(file, tableau[i]);
 
ou bien dois-je faire :
write(file, tableau[i].record1);
write(file, tableau[i].record2);
write(file, tableau[i].record2);
 
?
 
Sachant que le fichier est typé pour avoir les records.
 
Merci d'avance.
 
Siron


Message édité par Siron le 11-03-2006 à 13:51:45
mood
Publicité
Posté le 11-03-2006 à 13:51:11  profilanswer
 

n°1323615
Siron
Posté le 12-03-2006 à 12:16:00  profilanswer
 

J'ai fait la procedure mais elle fait fermer le programme :
 
TYPE

Citation :


  recstat = record
     nom : string;
     partie : integer;
     win : integer;
     point : integer;
     egal : integer;
     end;
  stats = array[1..1000] of recstat;


 
Procedure :

Citation :


procedure lire_fichier(var tabstats : stats; var filestats : file of recstat; var taillestats : integer);
VAR i : integer;
begin
i := 1;
RESET(filestats);
taillestats := 0;
while(not(EOF(filestats))) do
begin
 
 READ(filestats, tabstats[i]);
 i := i + 1;
 taillestats := taillestats + 1;
 end;
close(filestats);
end; {procedure}  


 
Code d'appel :

Citation :


ASSIGN(filestats, 'stats.txt');
lire_fichier(tabstats, filestats, taillestats);


 
Je n'ai pas trouvé pourquoi ça plante.


Message édité par Siron le 12-03-2006 à 12:16:22
n°1324034
el zozo
Stroumf Grognon
Posté le 13-03-2006 à 11:18:13  profilanswer
 

Suivant la version du pascal utilisée tu peut, ou non, lire et écrire un string dans un fichier(il y a un string dans ton record)
 
Dans les "vieu" pascal, un string est un tableau de 256 octect => pas de problème. Mais en Delphi, et je supose dans d'autres version, c'est un pointeur. Si l'enregistre, tu ne fait qu'enregistrer une adresse mèmoire(un mot de 16 ou 32 bits). Quand tu la lit, cela vas crèer un pointeur pointant vers l'adresse sauvegardé... Qui n'est certainement pas libre.
Solution : remplace la déclaration "nom : string;" par "nom : string[255];"  
 
Quand à sauvegarder un tableau de taille fixe, je pense que ça ne pose pas de problème.


Message édité par el zozo le 13-03-2006 à 11:22:04

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  File et tableau de record

 

Sujets relatifs
Allocation de tableau dans une fonctionaide php! affichage dans un tableau
Modification de données dans un tableau à l'aide d'une macroaide dans un tableau php
[Batch File] Problème d'espaceAccess tableau des correspondance des types de champs=>numéro
Tableau de données actualisé avec formulairetableau en parametre
Sélectionner une ligne d'un tableau word en VBOrganisation d'un tableau word enVB : Qui relevera le defi ?
Plus de sujets relatifs à : File et tableau de record


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR