Veröffentlicht 22. Mai 200619 j 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??
22. Mai 200619 j 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.
22. Mai 200619 j Autor 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
22. Mai 200619 j Autor 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
22. Mai 200619 j 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?
22. Mai 200619 j Autor 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]
22. Mai 200619 j Autor Ist m_file_sa45 dieselbe Datei? ja eigentlich heisst sie m_file_sa45 und nicht file
22. Mai 200619 j 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.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.