tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
1826
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Anfänger92 Anfänger92 ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Ort
    Wesel (NRW)
    Beiträge
    217
    Ich will mit CFile::Read aus einer Datei Daten auslesen und das ganze dann in einen CString speichern. Das macht schonmal Probleme und ich habe keine andere Lösung
    gefunden auser alles aus einem char array zu speichern und dann in den CString zu kopieren. Dabei stürtzt mein Programm jetzt ab. Weiß jemand wie ich direkt in einen CString speichern kann oder was an meinem Cod falsch ist ?:
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    
    CString MeinProgramm::DateiLaden(CString DateiName){
        CFile InFile;
        try{
            InFile.Open(DateiName,CFile::modeRead);
        }
        catch(...){
                        //Fehler
        }
        int Länge = InFile.GetLength();
        char Buffer100[100];
        char Buffer10[10];
        char Buffer1[1];
        CString Data;
        //Daten lesen
        [B]for(int i=0;i<=Länge;)
        {
            if(i+100<=Länge)
            {
                InFile.Read(Buffer100,100);
                int i;
                for(int b=i;b<=i+100;b++)
                {
                    Data.Insert(b,Buffer100[i]);
                    i++;
                }
                i=i+100;
            }
            if(i+10<=Länge)
            {
                InFile.Read(Buffer10,10);
                int i;
                for(int b=i;b<=i+10;b++)
                {
                    Data.Insert(b,Buffer10[i]);
                    i++;
                }
                i=i+10;
            }
            if(i+1<=Länge)
            {
                InFile.Read(Buffer1,1);
                int i;
                for(int b=i;b<=i+1;b++)
                {
                    Data.Insert(b,Buffer1[i]);
                    i++;
                }
                i=i+1;
            }
        }[/B]
        MessageBox(Data);
        return Data;
    }

    Der Fehler tritt im Dick hinterlegten Teil des Codes aus.
     

  2. #2
    MCoder MCoder ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jul 2005
    Ort
    München
    Beiträge
    2.448
    Hallo,

    dein Code schaut recht kompliziert aus, so dass ich auf die Fehlersuche verzichte und dir lieber eine etwas einfachere Variante vorschlagen möchte:
    Code cpp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    CString Data = _T("");
    CFile InFile;
     
    if( InFile.Open(DateiName,CFile::modeRead) )
    {   
        char Buffer[4096];
        int nRead;
     
        while( (nRead = InFile.Read(Buffer, sizeof(Buffer))) )
        {
            Buffer[nRead] = 0;
            Data += Buffer;
        }
     
        InFile.Close();
    }
    Gruß
    MCoder
     
    "The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
    --- Larry Wall

  3. #3
    Anfänger92 Anfänger92 ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Ort
    Wesel (NRW)
    Beiträge
    217
    Ja danke klappt wunderbar

    Hatte grad den Fehler gefunden. Hatte einer Varibalen keinen Wert zu gewiesen mit der Gerechnet werden sollte.

    Aber deine Lösung ist um ein ganzes Stück kürzer und einfacher.

    Danke Nochma

    Mfg Anfänger
     

Ähnliche Themen

  1. CString in CFile schreiben
    Von Alex braucht Hilfe im Forum VisualStudio & MFC
    Antworten: 3
    Letzter Beitrag: 08.07.10, 09:03
  2. CFile und CString
    Von SCIPIO-AEMILIANUS im Forum VisualStudio & MFC
    Antworten: 1
    Letzter Beitrag: 28.09.07, 16:35
  3. CFile Datei ändern
    Von flo_hr im Forum VisualStudio & MFC
    Antworten: 3
    Letzter Beitrag: 27.10.06, 12:25
  4. CFile read Line/write Line
    Von the_duke_at im Forum VisualStudio & MFC
    Antworten: 0
    Letzter Beitrag: 24.07.04, 14:00
  5. Binär lesen mit CFile
    Von schwork im Forum VisualStudio & MFC
    Antworten: 4
    Letzter Beitrag: 05.05.04, 09:37