zapis i odczyt liczb i tekstu z pliku .dat do różnych pól edit

0

używam w szkole Embarcadero C++Builder 2010
plik binarny będzie lepszy bo mam zamiar zapisać tam hasła do programu
zapis do pliku

 
struct opcje
{
   char b[30];
   int  a;
};
void __fastcall TForm2::Button5Click(TObject *Sender)
{
   ofstream outfile("dane.dat", ios::binary);
   if (!outfile) return;
   Opce dan;
   dan.Wiek = Edit1->Text.ToInt();
   dan.Imie = Edit2->Text.ToChar();         //tu wyskakuje błąd, nie wiem co tu wstawić aby zapisało mi litery  
                                                         //błąd [BCC32 Error] Unit2.cpp(139): E2277 Lvalue required
   outfile.write((char*)&dan, sizeof(dan));
   outfile.close();
}

odczyt

 
void __fastcall TForm2::Button7Click(TObject *Sender)
{
   ifstream infile("dane.dat", ios::binary);
   if (!infile) return;
   opcje dan;
   infile.read((char*)&dan, sizeof(dan));
   Edit1->Text = dan.a;
   Edit2->Text = dan.b;
   outfile.close();                         //wyskakuje błąd   [BCC32 Error] Unit2.cpp(153): E2451 Undefined symbol 'outfile'  
}
0
  1. C++ jest case sensitive, co oznacza, że Opcje i opcje to co innego, a w szczególności "Opce".
  2. Pola w strukturze mają inne nazwy niż te które używasz
  3. c-stringi kopiuje się przy użyciu strcpy, a nie przypisania
  4. zapisanie pliku binarnie nie spowoduje w żaden sposób że hasło będzie mniej widoczne, tak samo będzie można je zobaczyć w notatniku, z tą różnicą, że obok niego będzie kupa krzaków
  5. Nie wiem skąd lub od kogo ten kod zerżnęłeś, w każdym razie nauka podstaw zajmie Ci krócej niż spisywanie
0

Jeśli nie jesteś wstanie zrozumieć i sam naprawić tak prostego błędu kompilatora jak ten ostatni (o outfile zamiast infile), to sorry, ale wróć do podstaw (Symfonii) zamiast pisać dziwny program.

1 użytkowników online, w tym zalogowanych: 0, gości: 1