Witam
Jestem początkujący więc proszę o wyrozumiałość, chcę zrozumieć jak robić to w BCB by nie mieć podobnych problemów. Próbowałem swoimi sposobami ale jakoś mi nie wychodziło. A więc tak:
Tworzę w BCB aplikację która na podstawie wpisanej wartosci ID wyszukuje w pliku linię zawierającą zawartość zmiennej ID, wczytuje określone dane (nie wszystkie) z znalezionej linii do zmiennych które potem są importowane do Edit-ów. Nie wiem jak podejść do wyszukania i wczytania okreslonych danych. Zmienna CB nie jest umieszczona w pliku więc nie zwracajcie na nią uwagi, będzie wyliczna na podstawie CN. Struktura wygląda następująco:
struct Formularz{
char ID[8];
char NA[20];
char NP[20];
char VA[4];
char CN[8];
char CB[8];
};
Dane w pliku są zapisane w liniach wyglądających
(X) zaznaczylem dane ktore chce wczytac):
(X)18666GASKET (X)USZCZELKA 11 (X)1512 49 1,1 1 0 50ST (X)6,00
pierwsze liczby sa wlasnie ID ktore chce wyszukac, druga czesc to nazwa ktora chce wczytac do zmiennej NA. (18666 do ID, GASKET do NA)
Do tej pory zrobiłem w funkcji wyszukiwania (podaje to co udało mi się zrobić tak by nie otrzymywać błędu przy kompilacji):
void __fastcall TForm1::Button1Click(TObject *Sender) {
AnsiString szuk = PobierzNr->Text;
WyswNr->Text = szuk;
fstream dload;
dload.open("dane.txt",ios::in);
char* ID;
char* NA;
char* NP;
char* VA;
char* CN;
char* CB;
sprintf(ID, "%s", szuk.c_str());
dload.close();
}
Mozecie mi pomoc z ogarnięciem tego? Będę wdzięczny za każdą pomoc
Dodałem:
string temp;
getline(dload,temp);
Jednak po wywołaniu zdarzenia wywala mi Access Violation przy getline (bez działało)