[bcb] file handle probleem

Pagina: 1
Acties:

  • elgringo
  • Registratie: Januari 2001
  • Laatst online: 20-05 20:08
volgende code:
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


Verwijderd

eindigd je laatste regel wel met een CR en LF ?

  • elgringo
  • Registratie: Januari 2001
  • Laatst online: 20-05 20:08
Verwijderd schreef op 29 augustus 2004 @ 19:26:
eindigd je laatste regel wel met een CR en LF ?
ja

if broken it is, fix it you should


  • igmar
  • Registratie: April 2000
  • Laatst online: 12-05 15:46

igmar

ISO20022

[b][message=21539871,noline]elgringo schreef op 29 augustus 2004 @
En nu werkt die wel; maar waarom wordt die eof eerst niet gedetecteerd?
Zie C FAQ voor een uitleg.