cs_Squallou
Messages postés249Date d'inscriptionmardi 5 août 2003StatutMembreDernière intervention15 juillet 2006
-
9 avril 2006 à 16:15
EddiTheHead
Messages postés58Date d'inscriptionmercredi 16 février 2005StatutMembreDernière intervention 2 juin 2006
-
9 avril 2006 à 22:38
Hello tout le monde.
Je suis débutant et j'essaie tant bien que mal de me mettre aux fichiers.
Je sais que plusieurs sources pourraient répondre à ma question mais en les observant je me suis complètement paumé et je ne suis plus sûr de rien...
J'ai créé un fichier (C:\test.bin) bidon de 3 octets : 01 03 04 (hex)
Je voudrais tout simplement lire ces 3 octets et donc afficher 01 03 04 dans un TEdit.
EddiTheHead
Messages postés58Date d'inscriptionmercredi 16 février 2005StatutMembreDernière intervention 2 juin 2006 9 avril 2006 à 22:14
Slt,
...
Var Fichier : File Of Byte;
Octet : Byte;
...
// Ecrire le code ASCII du caractère 'A' dans un fichier
AssignFile(Fichier, 'Test');
Rewrite(Fichier);
Octet := 65;
Write(Fichier, Octet);
CloseFile(Fichier);
// Lire un caractère dans un fichier et l'afficher dans un TEdit
AssignFile(Fichier, 'Test');
Reset(Fichier);
Read(Fichier, Octet);
Edit1.Text := IntToStr(Octet); // Pour afficher le code ASCII
Edit2.Text := Chr(Octet); // Pour afficher le caractère
CloseFile(Fichier);
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 9 avril 2006 à 22:20
Salut,
voici deux exemples très simples:
Le premier va lire un octet après l'autre tant que la fin du fichier n'est pas atteint
Et la deuxième lit un block de 512 Octets maximum en une fois (même si il y en a plus où moins à lire)
// Lecture par Octet
procedure TForm1.Button1Click(Sender: TObject);
Var Fichier : File of Byte;
bt : Byte;
begin Edit1.Clear; // On efface le contenu de l'edit
AssignFile(Fichier, 'C:\Test.bin');// On assigne le fichier à la variable
Reset(Fichier); // On l'ouvre
WhileNot Eof(Fichier) do // Tant que la fin du fichier n'est pas atteint...
Begin Read(Fichier, bt); // Lecture d'un Octet
Edit1.Text := Edit1.Text + IntToStr(Bt)+ ' '; // Ajout dans l'Edit
End;
CloseFile(Fichier); // Et on le referme
end;
// Lecture par Block
procedure TForm1.Button2Click(Sender: TObject);
Var Fichier : File of Byte;
bt : Array[0..511] of Byte;
NbLu : Integer;
begin AssignFile(Fichier, 'C:\Test.bin'); // On assigne le fichier à la variable
Reset(Fichier); // On l'ouvre
BlockRead(Fichier, bt, SizeOf(Bt), NbLu); // Lecture d'un Block d'octets
ShowMessageFmt('Lu %d : %d %d %d', [NbLu, Bt[0], Bt[1], Bt[2]]); // Affichage sous forme de MessageBox
CloseFile(Fichier); // Et on le referme
end;
Donc la première si il y a plus de trois Octets à lire dans ton fichier ben le tout sera lu
et le deuxième ne lira que 512 octets maximum et n'en affichera que les trois premiers