tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
510
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Wu-mc Wu-mc ist offline Mitglied Silber
    Registriert seit
    Nov 2005
    Beiträge
    75
    Hallo Forum,

    ich habe ein Problem. Ich versuche eine Datei nach einem Muster zu parsen, was auch ganz gut funktioniert, bis auf das erste Zeichen. Die Datei beginnt mit 100... Versuche ich die Datei ab dem zweiten Zeichen einzulesen dann bekomme ich die zwei 00. Will ich aber das erste Zeichen bekomme garnichts.

    Also ändere ich
    Code :
    1
    
    const int cols[] = {0,3,...
    in
    Code :
    1
    
    const int cols[] = {1,3,...
    steht hinterher in kunde[0] 00, ansonsten steht garnichts drin. Ich dachte schon das am Anfang der Zeile vielleicht ein Escape Zeichen oder sowas steht, aber dann müsste die 1 ja als nächstes Zeichen eingelesen werden.

    Hier noch der komplette Code:
    Code :
    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
    26
    27
    28
    29
    30
    31
    
        const int cols[] = {0,3,6,8,16,24,31,34,37,44,52,61,69,72,92,112,117,137,157,177,197,217,237,239,240,242};
        char kunde[rows][maxwidth];
     
        lfdnr++;
     
        int i=0, j=0, k=0, laenge;
        char buf[1024];
     
        FILE *input = fopen("\\Storage Card\\daten.txt", "r");
     
        do 
        {
            buf[i]=fgetc(input);
            i++;
            if (buf[i-1]=='\n')
            {
                j++;
                i=0;
            }
        } while (j!=lfdnr);
        buf[i]=0;
     
        for (j=0; j<rows; j++)
        {
            for (k=0, i=cols[j]; i<cols[j+1]; k++, i++)
            {
                kunde[j][k] = buf[i];
                kunde[j][k+1] = 0;
            }
            
        }

    Kann das jemand nachvollziehen?

    Falls es wichtig ist: Es handelt sich um einen Pocket PC mit WindowsCE.
     

  2. #2
    Avatar von CodeFatal
    CodeFatal CodeFatal ist offline Mitglied Platin
    Registriert seit
    Oct 2004
    Beiträge
    509
    Hi,
    ich schlag mich ebenfalls mit CE rum. Dein Problem kommt aber vermutlich nicht aus der CE Welt.
    Falls du embedded VS c++ 4.0 nutzt schau doch einfach mal in den Debugger
    nutz mal statt fgetc fgets das liesst automatisch ne ganze zeile bzw ne bestimmte zahl an zeichen, da gab es bis jetzt noch keine Probleme mit und der Code wird einfacher

    Gruss Michael
     
    Grüß die Welt, dann grüßt sie dich!

    Keine Panik, die Titanic ist schon gesunken!

  3. #3
    jsendrow Tutorials.de Gastzugang
    In deiner Leseschleife setzt Du i=0 wenn ein Zeilenumbruch erreicht wird:

    Code :
    1
    2
    3
    4
    5
    6
    7
    
            buf[i]=fgetc(input);
            i++;
            if (buf[i-1]=='\n')
            {
                j++;
                i=0;
            }

    Danach setzt du

    Code :
    1
    
    buf[i]=0;

    So, jetzt die Preisfrage. Warum ist buf[0] wohl 0 ?
     

  4. #4
    Avatar von CodeFatal
    CodeFatal CodeFatal ist offline Mitglied Platin
    Registriert seit
    Oct 2004
    Beiträge
    509
    Hmm,
    Ok ebenfalls nicht gesehen. aber mit dem Debugger hät Wu-mc es auch gemerkt
    Gruss Michael
     
    Grüß die Welt, dann grüßt sie dich!

    Keine Panik, die Titanic ist schon gesunken!

  5. #5
    Wu-mc Wu-mc ist offline Mitglied Silber
    Registriert seit
    Nov 2005
    Beiträge
    75
    ach verdammt, hast recht... so was blödes und ich mach da ewig rum. Tja vor lauter Bäumen *g*
    Vielen Dank
     

Ähnliche Themen

  1. Zahl aus Datei ab Zeichen einlesen
    Von stevieda im Forum C/C++
    Antworten: 14
    Letzter Beitrag: 17.02.09, 15:05
  2. cin.get(ch) einlesen von Zeichen
    Von Roncalli im Forum C/C++
    Antworten: 4
    Letzter Beitrag: 11.01.09, 14:38
  3. WinAPI: 3 Zeichen einlesen
    Von Eisi_GolBay im Forum C/C++
    Antworten: 3
    Letzter Beitrag: 30.04.07, 10:33
  4. Binäre Datei einlesen funktioniert nicht
    Von cesupa im Forum C/C++
    Antworten: 0
    Letzter Beitrag: 01.05.06, 15:10
  5. zeichen auf cout einlesen
    Von bruaderherz im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 31.07.04, 17:59