bigpoint Geschrieben 22. Mai 2006 Geschrieben 22. Mai 2006 Hallo, ich lese eine ASCI Datei ein mit CStudioFile und RedString Die Datei sieht so aus: 0001#123 #456 #00123 <- hier wir durch 0x0A Sprung in neue Zeile 0001#122 #453 #00123 Jetzt wenn ich die zweite Zeile auslesen will kriege ich statt 0001#122 #453 #00123 001#122 #453 #00123 es wird also ein 0 abgeschnitten. Hat jemand eine die wie ich es lösen kann?? Zitieren
Klotzkopp Geschrieben 22. Mai 2006 Geschrieben 22. Mai 2006 Hat jemand eine die wie ich es lösen kann??Ohne deinen Code zu sehen, vermutlich nicht. Wahrscheinlich machst du beim Einlesen etwas falsch. Übrigens: Die Dinger heißen CStdioFile und ReadString. Ein U zuviel, ein A zuwenig. Ich passe den Threadtitel mal für dich an. Zitieren
bigpoint Geschrieben 22. Mai 2006 Autor Geschrieben 22. Mai 2006 Ohne deinen Code zu sehen, vermutlich nicht. Wahrscheinlich machst du beim Einlesen etwas falsch. CStdioFile file; CString sinput; try { file.Open(path,CFile::modeRead); while (file.GetPosition() < m_file_sa45.GetLength()-1) { file.ReadString(sinput); } }catch(CFileException* fe ) { file.Close(); fe->GetErrorMessage(szCause,255); fehler.Format("Fehler:%d bei öffnen der Datein %s",szCause, fe->strFileName); AfxMessageBox(fehler,MB_ICONERROR); fe->Delete(); } file.Close(); [/PHP] . Übrigens: Die Dinger heißen CStdioFile und ReadString. Ein U zuviel, ein A zuwenig. Ich passe den Threadtitel mal für dich an. danke Zitieren
Klotzkopp Geschrieben 22. Mai 2006 Geschrieben 22. Mai 2006 Und wo zeigt sich da der verkürzte String? Du machst ja gar nichts mit den Daten. Zitieren
bigpoint Geschrieben 22. Mai 2006 Autor Geschrieben 22. Mai 2006 Und wo zeigt sich da der verkürzte String? Einfach das zweite lauf in der schleife gib mir in sinput 001#122 #453 #00123 statt 0001#122 #453 #00123 ;( Du machst ja gar nichts mit den Daten. Nein nein ich mache schon was, allerdings will ich hier nicht den ganzem Code zeigen Zitieren
Klotzkopp Geschrieben 22. Mai 2006 Geschrieben 22. Mai 2006 Einfach das zweite lauf in der schleife gib mir in sinput 001#122 #453 #00123 statt 0001#122 #453 #00123 ;(Was heißt "gib"? Siehst du das im Debugger? Mach da doch bitte mal eine MessageBox hin. Nein nein ich mache schon was, allerdings will ich hier nicht den ganzem Code zeigen Und was, wenn der Fehler in dem Teil steckt, den du hier nicht zeigst? Zitieren
bigpoint Geschrieben 22. Mai 2006 Autor Geschrieben 22. Mai 2006 Und was, wenn der Fehler in dem Teil steckt, den du hier nicht zeigst? Ausgeschlossen, denn bevor ich was mit den string anfange wir er um 1 kürzer Jetzt kommt aber der Hammer: Wenn ich die Datei so lese funktioniert alles perfekt:eek while(file.ReadString(sinput)) { } [/PHP] Zitieren
bigpoint Geschrieben 22. Mai 2006 Autor Geschrieben 22. Mai 2006 Ist m_file_sa45 dieselbe Datei? ja eigentlich heisst sie m_file_sa45 und nicht file Zitieren
Klotzkopp Geschrieben 22. Mai 2006 Geschrieben 22. Mai 2006 Es klappt übrigens auch mit GetPosition, wenn du die Dateigröße nur einmal vorher ermittelst. Spar dir doch die zwei Funktionsaufrufe pro Zeile und mach's nur mit ReadString Offenbar kommt CFile/CStdioFile durcheinander, wenn du andauernd in einer Datei mit Unix-Zeilenumbrüchen herumspringst. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.