PROBLEM C++ Bulider Access volulation w module CC32120MT.DLL

1

Raz dziala, normalnie czyta z rekordu a raz wychodzi blad "Access volulation at adress 32C72111 in module CC32120MT.DLL.read of address 01EF8794" , przeszukalem google i nic. Prosze o pomoc

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
#include <fstream.h>
#include <string>
#include <vector>
#include "Unit3.h"
#include "Unit1.h"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
class klienci
{
public:
int id;
string imie;
string nazwisko;
int wiek;
string pesel;
string ulica;
string miasto;
int nrdomu;
};
TForm2 *Form2;
klienci dana;
vector <klienci> odczyt;
int i;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
	: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm2::FormClose(TObject *Sender, TCloseAction &Action)
{
Application->Terminate();
}
//---------------------------------------------------------------------------
void __fastcall TForm2::FormShow(TObject *Sender)
{
i=0;
ifstream infile("baza.bin", ios::binary);
if(infile)
{
while (!infile.eof())
{
infile.read((char*)&dana, sizeof(dana));
odczyt.push_back(dana);
};
infile.close();
};
Form2->Edit1->Text=odczyt[i].imie.c_str();
Form2->Edit2->Text=odczyt[i].nazwisko.c_str();
Form2->Edit3->Text=odczyt[i].wiek;
Form2->Edit5->Text=odczyt[i].miasto.c_str();
Form2->Edit6->Text=odczyt[i].ulica.c_str();
Form2->Edit7->Text=odczyt[i].nrdomu;
Form2->Edit8->Text=odczyt[i].id;
}
//---------------------------------------------------------------------------
 
0

Form2 jest WSKAŹNIKIEM który NA NIC nie pokazuje, stąd jak próbujesz się do niego odwołac to program się wysypuje.

0

Wywalilem z programu

Form2->Edit1->Text=odczyt[i].imie.c_str();
Form2->Edit2->Text=odczyt[i].nazwisko.c_str();
Form2->Edit3->Text=odczyt[i].wiek;
Form2->Edit5->Text=odczyt[i].miasto.c_str();
Form2->Edit6->Text=odczyt[i].ulica.c_str();
Form2->Edit7->Text=odczyt[i].nrdomu;
Form2->Edit8->Text=odczyt[i].id;

nadal to samo

0

Zmienne globalne i brak formatowania kodu -> szkoda slów.
Na oko w tym kodzie wiecej błędów nie ma.

0

Jeszcze ten odczyt z pliku. Tak nie można odczytywać std::string.

0

aaaa przeoczyłem to, faktycznie. Nie możesz tak czytać danych z pliku. Co więcej, glowę dam że w pliku masz kilka słów plain textem i myślisz ze to się tak wczyta...

0

Hasło na dziś: serializacja.

0

Dziekuje za wytyczenie bledow do tego kazdy pierwszy ale zeby pomoc to juz nikt. Pisaliscie ze zle string zdeklarowany to napisz jak a nie neguj...

0
Div napisał(a):

napisz jak

serializacja

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