Bonjour,

Le code ci-dessous avec TStream fonctionne bien.

Le problème est qu'il affiche les données à la suite sur la ListBox
Dupont
Paris
Martin
Lille
et non de cette façon (par enregistrement) :
Dupont Paris
Martin Lille
À moins de faire de cette façon :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
writer->WriteLine(personnes.nom + " " + personnes.ville + " " + personnes.num);
Pas terrible et comment modifier par exemple la variable personnes.ville ou supprimer un enregistrement ?

Je cherche avec seek. Si vous avez une idée ...

Merci d'avance.

Cordialement.

Exemples Embarcadero :

http://docwiki.embarcadero.com/CodeE...ample#mw-pages

StreamAdvancedRdWr
StreamCharRdWr
StreamStrRdWr



Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
 
struct PERSONNE
 {
  AnsiString nom;
  AnsiString ville;
  int num;
 };
 PERSONNE personnes;
 int pos;
 
void __fastcall TForm2::WriterStructClick(TObject *Sender)
{
   TStreamWriter* writer;
 
  /* Creation écriture */
	writer = new TStreamWriter("local.txt", ios::out | ios :: app);   //   ios :: app pour ajouter des enregistrements
 
	/* ajouter des données */
      personnes.nom = Edit2->Text;
	  personnes.ville = Edit3->Text;
	  personnes.num = pos;
	  pos+=1;
	writer->WriteLine(personnes.nom);
	writer->WriteLine(personnes.ville);
	writer->WriteLine(personnes.num);
 
	/* fermer */
	delete writer;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm2::ReaderStructClick(TObject *Sender)
{
 ListBox2->Clear();
  TStreamReader* reader;
  /* création lexture */
	reader = new TStreamReader("local.txt", ios::in);
	while (reader->Peek() >= 0)
 
 {
   ListBox2->Items->Add(reader->ReadLine());
 }
 
 
 // fermer
  delete reader;
 
}