Fichier binaire et structure
Bonjour,
J'essaie de construire un fichier binaire avec une structure. C'est un essai.
Lors de l'ouverture, j'ai comme message d'erreur : "Abnormal program termination"
Curieusement, si je retire la ligne ListBox2->Items->Add(personnes.nom + " " + personnes.ville+ " " +IntToStr(personnes.num) );
Pas de message d'erreur.
J'aimerais utiliser mon fichier de façon classique :
- Enregistrer
- Modifier (avec Fseek ?)
- Supprimer (avec Fseek ?)
Je cherche des solutions sur le net, pas moyen ... et je rame
Ci-dessous mon code.
Si vous avez une solution, merci d'avance.
Cordialement
Code:
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 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
struct PERSONNE
{
String nom;
String ville;
int num;
};
PERSONNE personnes;
int pos;
void __fastcall TForm2::EnregistrerStructClick(TObject *Sender)
{
// Ecriture
int i;
ofstream fichier ("Repertoire.xyz", ios::out | ios :: app);
if(!fichier.is_open())
{
ShowMessage ("Impossible de créer le fichier");
return;
}
else
{
personnes.nom = Edit2->Text;
personnes.ville = Edit3->Text;
personnes.num = pos;
pos+=1;
fichier.write ((char *)&personnes, sizeof(PERSONNE));
}
fichier.close();
}
void __fastcall TForm2::OuvertureStructClick(TObject *Sender)
{
ListBox2->Clear();
int i;
ifstream fichier ("Repertoire.xyz", ios::in );
if (!fichier.is_open())
{
ShowMessage ("Impossible d'ouvrir le fichier");
return;
}
else
{ while (!fichier.eof())
{
fichier.read ((char *)&personnes, sizeof(PERSONNE));
ListBox2->Items->Add(personnes.nom + " " + personnes.ville+ " " +IntToStr(personnes.num) );
}
}
fichier.close();
} |