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
|
AnsiString Filename;
Byte Tab[256]; // chez moi juste pour le test
//--
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
// Par défaut, le dossier de l'excutable devient le chemin initial
AnsiString Filepath = ExtractFilePath(Application->ExeName);
OpenDialog1->InitialDir = Filepath;
SaveDialog1->InitialDir = Filepath;
}
//--
void __fastcall TForm1::Ouvrir1Click(TObject *Sender)
{
FILE *f;
if( OpenDialog1->Execute() )
{
Filename = OpenDialog1->FileName;
// chargement du fichier en mémoire
f = fopen( Filename.c_str(), "wb" );
fread(Tab,4,3,f);
fclose(f) ;
}
}
void __fastcall TForm1::Enregistrersous1Click(TObject *Sender)
{
if( SaveDialog1->Execute() )
{
Filename = SaveDialog1->FileName;
Enregistrer();
}
}
void __fastcall TForm1::Enregistrer1Click(TObject *Sender)
{
if(Filename != "") Enregistrer();
else Enregistrersous1Click( Enregistrersous1 );
}
void __fastcall TForm1::Quitter1Click(TObject *Sender)
{
switch(Application->MessageBox("Enregistrer les modifications ?\n\n- Oui pour enregistrer\n- Non pour quitter (les données seront perdues)\n- Annuler pour revenir au programme",
"Quitter le programme",
MB_ICONWARNING | MB_YESNOCANCEL))
{
case IDYES : Enregistrer1Click( Enregistrer1 ); break;
case IDCANCEL : return;
}
Close();
}
// méthode supplémentaire pour simplifier le code
void __fastcall TForm1::Enregistrer()
{
FILE *f = fopen( Filename.c_str(), "wb" );
fwrite(Tab,4,3,f);
fclose(f) ;
} |
Partager