Zum Inhalt springen

CStdioFile und ReadString


Empfohlene Beiträge

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??

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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?
Link zu diesem Kommentar
Auf anderen Seiten teilen

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]

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...