volgende code:
infile is een geopend tekstbestand met de volgende layout:
Elke regel eindigd met een 0x0D en 0x0A (\r \n)
Nu werkt alles prima alleen dat de laatste regel 2x gelezen wordt (die met afbeelding 3). Deze komt ook dubbel in strArry en strArray2 te staan. Ik snap niet waarom deze regel dubbel gelezen wordt.
Edit:
Is wat eigelijk op zoek naar een methode die een regel tegelijk kon lezen ongeachte de lengte hiervan, deze methode kon ik niet vinden en heb het dus maar zo opgelost.
Edit2:
Ik heb de while wat aangepast:
En nu werkt die wel; maar waarom wordt die eof eerst niet gedetecteerd?
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| if (infile){ char regel[1000]; // max 1000 tekens int teller=0; while (!feof(infile)){ fgets(regel,1000, infile); while (regel[teller]!='\n') { teller++; } regel[teller]=0; teller=0; s=regel; positie=s.Pos(strScheiding); strArray[lastempty][0]=s.SubString(0,(positie-1)); strArray[lastempty][1]=s.SubString((positie+3),s.Length()); strArray2[lastempty][0]=s.SubString(0,(positie-1)); strArray2[lastempty][1]=s.SubString((positie+3),s.Length()); lastempty++; } } |
infile is een geopend tekstbestand met de volgende layout:
code:
1
2
3
| Afbeelding 001.jpg|||1 Afbeelding 002.jpg|||2 Afbeelding 003.jpg|||3333 |
Elke regel eindigd met een 0x0D en 0x0A (\r \n)
Nu werkt alles prima alleen dat de laatste regel 2x gelezen wordt (die met afbeelding 3). Deze komt ook dubbel in strArry en strArray2 te staan. Ik snap niet waarom deze regel dubbel gelezen wordt.
Edit:
Is wat eigelijk op zoek naar een methode die een regel tegelijk kon lezen ongeachte de lengte hiervan, deze methode kon ik niet vinden en heb het dus maar zo opgelost.
Edit2:
Ik heb de while wat aangepast:
C++:
1
| while (fgets(regel,1000, infile)!=0){ |
En nu werkt die wel; maar waarom wordt die eof eerst niet gedetecteerd?
[ Voor 21% gewijzigd door elgringo op 29-08-2004 18:15 ]
if broken it is, fix it you should