Inhalt der ASCII Datei stimmt nicht mit Listenfeld überein



  • Hallo,

    ich habe da ein Problem mit der ASCI-Codierung. Ich schreibe in eine ganz normale Textdatei eine Überschrift die unterstrichen ist rein und dadrunter Ausfallzeiten. Wenn ich das ganze Anschliessend in meinem Listenfeld anzeigen will, stimmt die komplette Formatierung nicht, z.B. Der Unterstrich ist kürzer.
    Woran liegt das und wie kann ich das beheben ?

    Gruss





  • Hallo irgendwie haben wir uns da missverstanden ich suche eine funktion die eine ascii datei so umwandelt das man in der Listbox die gleiche Formatierung erhällt



  • NEIN, du hast mich missverstanden.
    Du hast einen Fehler in deinem Code, denn normalerweise funzt das perfekt. WIR sind kein Hellseher, deine Fehler zu erkennen, ohne auch nur eine Zeile deines Codes zu sehen.



  • ach soo ja stimmt hast auch mal wieder recht. Hier der Code m_strDisp ist die Variable des Listenfeldes.

    CFileDialog m_dlgFile(TRUE, _T("log"), _T("*.log")); // TRUE = Datei öffnen,FALSE = Datei speichern 
    
    if(m_dlgFile.DoModal() == IDOK)     // erst mit OK bestätigen modeler Dialog
    {    
     m_strPathLogTMP = m_dlgFile.GetPathName();      
     CString tmpLogPath;
     tmpLogPath = m_strPathLogTMP;
     int pos = tmpLogPath.Find("log"); // letztes '\' finden
     tmpLogPath = tmpLogPath.Right(3); // Name der Exe abtrennen, so dass nur noch der Pfad übrig bleibt
    
    if(tmpLogPath != "log")
     MessageBox("Die von Ihnen gewählte Datei ist kein Logfile des  Programms.", "Abbruch", MB_ICONSTOP);
    
    else
    {
     CFile datei(m_strPathLogTMP, CFile::modeRead); 
     DWORD size_buff = datei.GetLength();   
    
      if(size_buff == 0)
       MessageBox("Das Logfile ist leer !!!", "Fehler", MB_ICONERROR);
    
      else
      {
       TCHAR* pStr = new TCHAR[size_buff+1];
       datei.Read(pStr, size_buff);
       pStr[size_buff] = 0;
       datei.Close();
    
       CString strLatch = " ";
       m_strDisp.ResetContent();
    
       for(int i=0; i < (size_buff+1); i++)
       {
        if((pStr[i] == '\n') && (pStr[i] != '\r'))
       {
       m_strDisp.AddString(strLatch);
       strLatch="";
      }
    
      if((pStr[i] != '\n') && (pStr[i] != '\r'))
       strLatch = strLatch+pStr[i];
     }
     delete[] pStr;
    }
    }
    }
    


  • Hier im Forum gibts schon genug Beiträge, wie man eine Datei zeilenweise ausliest. Such mal nach CStdioFile.



  • Ich möchte aber CFile anstatt CStdioFile benutzen geht das nicht wenn nein warum nicht ?


Anmelden zum Antworten