unhandled exception in StdioFile.ReadString

cheristi

Grünschnabel
Aloha

Ich les eine Datei mit Werten ein, die geschickterweise durch Tabs getrennt sind

{"-17,4533 -27,874 -3,08657 23,1162 -20,4222 1 ;
"}

Sowas zum Beispiel.

Das geht mit StdioFile.ReadString(CString) ja acuh ganz schick, dummerweise werden da die Tabs nicht vernünftig übernommen.

Das hab ich dann folgendermaßen gelöst (mich interessieren nur Werte 3-5)

PHP:
strcpy(pC,Line); 

        for (int j = 0; pC && (*pC != '\0') && (*pC != ';') && (j < 5); j++)
        {
            char *str = pC;
            while (*str == ' ')    //evtl. führende Leerzeichen entfernen
            str++;
            char *pC2 = strchr(str, '\t');
            if (pC2 != NULL)
            {
                *pC2 = '\0';
                pC2++;
            }
            if (j == 2)
                x = str2float(const_cast<char*>(pC));
            if (j == 3)
                y = str2float(const_cast<char*>(pC));
            if (j == 4)
                z = str2float(const_cast<char*>(pC));
                pC=pC2;
            while (pC && (*pC == ' '))    // Leerzeichen übergehen
                pC++;            
        }
Das klappt auch wunderbar.

Aber nurn schmiert mir ReadFile reproduzierbar immer an der gleichen Stelle ab, immer nach genau der gleichen Anzahl an Wiederholungen.

PHP:
    if (File.Open(filename, CFile::shareDenyWrite | CFile::modeRead) == 0)
        return -1;
    File.SeekToBegin();
    
    bool bData = false;
    while (File.ReadString(Line)==TRUE)
    {
        if (!bData)
        {
            Line.TrimRight();
            if (Line.Compare("[Daten]")==0)
                bData = true;
        }
        else
        {
//hier kommt meine eigentliche Verarbeitung, Daten stehen halt erst nach dem "[Daten]"-String
                }
Er schmiert ab in der ReadString, irgendwo ganz weit unten mit einer "First-chance exception in Sammon3DD.exe (NTDLL.DLL): 0xC0000005: Access Violation."
in _lock_file ab.

Kompiliert wird das ganze unter VS6 Windows XP SP2
Jmd ne Idee?


#grs
 
Zurück