ptite question en delphi [facile]

ptite question en delphi [facile] - Delphi/Pascal - Programmation

Marsh Posté le 18-05-2002 à 17:19:48    

voila je dispose de 2 fichiers sous cette forme :  
rec1=record
        num:integer;
        nom:packed array [1..25] of char;
 end;
 
rec2=record
        num:integer;
        result:array [1..10] of integer;
end;
 
comment je dois les declarer ds le prog (file of ?????)
et pour aller lire dedans je fait comment ????  :heink:

Reply

Marsh Posté le 18-05-2002 à 17:19:48   

Reply

Marsh Posté le 18-05-2002 à 18:25:36    

%#@&!$ù de smiley

Reply

Marsh Posté le 18-05-2002 à 20:50:07    

var Fichier1 : file of rec1;
 
idem pour l'autre
 
Tu défini une variable tampon ;)
 
var Tampon : rec1;
 
Lecture :
 
AssignFile(Fichier1,Chemin d'accès);
{$I-}             {Directive de compilation pour tester les E/S}Reset(Fichier1);   {Ouverture du fichier}
{$I+}
if (IOResult=0)
then              {Le fichier existe}
   begin
   while Not(Eof(Fichier1)) do  
   begin    
      Read(Fichier1,Tampon);
      Showmessage(Tampon); {bidon, juste pour afficher}
   end;  
   CloseFile(Fichier1);
   end
else
   Showmessage('Le fichier n'existe pas';);

 

[jfdsdjhfuetppo]--Message édité par Thander le 18-05-2002 à 20:52:17--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 18-05-2002 à 21:39:28    

Thander a écrit a écrit :

var Fichier1 : file of rec1;
 
idem pour l'autre
 
Tu défini une variable tampon ;)
 
var Tampon : rec1;
 
Lecture :
 
AssignFile(Fichier1,Chemin d'accès);
{$I-}             {Directive de compilation pour tester les E/S}Reset(Fichier1);   {Ouverture du fichier}
{$I+}
if (IOResult=0)
then              {Le fichier existe}
   begin
   while Not(Eof(Fichier1)) do  
   begin    
      Read(Fichier1,Tampon);
      Showmessage(Tampon); {bidon, juste pour afficher}
   end;  
   CloseFile(Fichier1);
   end
else
   Showmessage('Le fichier n'existe pas';);  
 
 




 
 
merci bcp mais il reste un truc que jaimerai bien faire :  
program Project1;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils;
type
 rec1=record
        num:integer;
        nom:packed array [1..25] of char;
 end;
 rec2=record
        num:integer;
        result:array [1..10] of integer;
 end;
 
var
 
     fich1:file of rec1;
     fich2:file of rec2;
     temp:rec1;
 
 begin
 
    assign(fich1,'c:\rec1.txt';);
    rewrite(fich1);
    writeln('entrez le nom';);
    read(temp.nom);
    writeln(fich1,temp.nom);
    close(fich1);
 
    readln;
end.
 
la il me donne type illegal ds readln et ds writeln

Reply

Marsh Posté le 19-05-2002 à 11:18:26    

writeln(fich1,temp.nom);  
 
Ca c'est pas bon ;)
 
D'abord, il faut utiliser Write (et non ln)
 
En +, il faut faire un Write(fich1, temp)  (et non temp.nom)
 
Donc, il faut aussi que tu renseignes la valeur de temp.num avant de faire le Write :)  
 
Un dernier truc, utilise Closefile à la place de close ;)  
 :hello:

 

[jfdsdjhfuetppo]--Message édité par Thander le 19-05-2002 à 11:20:13--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 19-05-2002 à 11:50:54    

Et AssignFile au lieu de Assign, mais bon à priori ça change pas grand chose... C'est juste pour pas confondre avec le Assign et le Close des objets dela VCL.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 19-05-2002 à 14:24:08    

antp a écrit a écrit :

Et AssignFile au lieu de Assign, mais bon à priori ça change pas grand chose... C'est juste pour pas confondre avec le Assign et le Close des objets dela VCL.  




 
Oui, en effet, c'est mieux ;)
 
Sinon, pour ton read, ça marche pas et c'est normal :D  
Ca te dirais pas de redéfinir ta structure comme ça ;)  
 
rec1=record  
       num:integer;  
       nom:string[25];  
end;  
 
Avec un petit string (c'est pas à quoi tu penses :D ), ça marchera nickel :sol:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed