ptite question en delphi [facile] - Delphi/Pascal - Programmation
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]
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 
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  
  
  
 
[jfdsdjhfuetppo]--Message édité par Thander le 19-05-2002 à 11:20:13--[/jfdsdjhfuetppo]
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.
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  
  
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  ), ça marchera nickel
 ), ça marchera nickel  
 
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 ????