Hallo,
Ik ben bezig met een applicatie waarbij ik een config bestand kan inladen, maar nu is m'n probleem dat ik er enkel maar in slaag om een lijn in te lezen, en per plaats ( bv per 30 karakters ) iets in te lezen, ik maak dus iedere keer een offset van 30, waarbij ik dan op die plaats de gewenste waarde verwacht ..
maar nu wil ik dit liever per lijn doen, zo:
abc
def
ghi
jkl
ipv:
abc def ghi jkl ... ( ieder karakter op een vaste plaats )
nu doe ik dit aan de hand van dit stukje code, maar bestaat er geen andere oplossing?
ik lees dus 30 karakters in, en toon dit in m'n form .. daarna lees ik terug 30 karakters in, maar met een offset van 30 .. maar het probleem is hierbij dat dit uiteraard zeer onoverzichtelijk is, en dat zeer eenvoudig vatbaar is voor fouten, want stel dat het 2de stukje data al begint op karakter 29 .. ? dan verlies ik al eentje ..
iemand die een oplossing weet?
alvast zeer erg bedankt!!
Alexander
Ik ben bezig met een applicatie waarbij ik een config bestand kan inladen, maar nu is m'n probleem dat ik er enkel maar in slaag om een lijn in te lezen, en per plaats ( bv per 30 karakters ) iets in te lezen, ik maak dus iedere keer een offset van 30, waarbij ik dan op die plaats de gewenste waarde verwacht ..
maar nu wil ik dit liever per lijn doen, zo:
abc
def
ghi
jkl
ipv:
abc def ghi jkl ... ( ieder karakter op een vaste plaats )
nu doe ik dit aan de hand van dit stukje code, maar bestaat er geen andere oplossing?
C++:
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
| ifstream bestandlezen; void load_config(){ AnsiString bestandsnaam = Form2->OpenDialog1->FileName; bestandlezen.open(bestandsnaam.c_str()); char Client[30] = {NULL}; if (!bestandlezen.eof())bestandlezen.getline(Client,30); Form2->config_name->Caption= Client; bestandlezen.clear(); char Type[30] = {NULL}; bestandlezen.seekg(30); if (!bestandlezen.eof())bestandlezen.getline(Type,30); Form2->type_name->Caption= Type; bestandlezen.clear(); char Identif[30] = {NULL}; bestandlezen.seekg(60); if (!bestandlezen.eof())bestandlezen.getline(Identif,30); Form2->id_vak->Text=Identif; bestandlezen.clear(); bestandlezen.close(); config_geladen =1; } |
ik lees dus 30 karakters in, en toon dit in m'n form .. daarna lees ik terug 30 karakters in, maar met een offset van 30 .. maar het probleem is hierbij dat dit uiteraard zeer onoverzichtelijk is, en dat zeer eenvoudig vatbaar is voor fouten, want stel dat het 2de stukje data al begint op karakter 29 .. ? dan verlies ik al eentje ..
iemand die een oplossing weet?
alvast zeer erg bedankt!!
Alexander
[ Voor 5% gewijzigd door Verwijderd op 27-09-2006 08:55 ]