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 :
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
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;
} |
Partager