CArchiv immer wieder von vorne einlesen
-
Hi,
ich lese Daten aus einer Datei per Serialisierung ein, das funktioniert auch einwandfrei. Allerdings habe ich das Problem, dass ich immer wieder vom Anfang der Datei einlesen will und nicht dort, wo der letzte Wert eingelesen wurde. Also zu verdeutlichung:
for(;;) { CArchive ar(&m_openSchallFile, CArchive::load); Serial.Serialize(ar); arr.Close(); if(Serial.m_bezeichnung=="end") break; }Er soll also bei jedem Schleifendurchgang wieder von Anfang an einlesen. Das tut er jedoch nicht, also bekomm ich nach dem ersten Durchlauf die Fehlermeldung: "Es wurde versucht, auf eine Stelle hinter dem Ende eine unbekannte Datei zuzugreifen." Weiß jemand wie sich das lösen lässt??!
THX!
-
Weiß denn wirklich niemand ne Lösung?? Ist super wichtig, komm sonst net weiter!
-
Warum brauchst Du das denn ?
Zum einen scheint es eine Endlosschleife zu werden ?! zum anderen machst
Du arr mit Close zu(!)Erklär mal für was Du das brauchst, eventuell gibt es durch eine Korrektur im Design eine bessere Möglichkeit.
-
Ich lese aus einer Datei Daten aus. Aus der zweiten, der oben beschriebenen, lese ich auch Daten aus, die ich in Kombination mit den Daten aus der ersten Datei benötige. Dann kommt der zweite Datensatz aus der ersten Datei, dafür kann, aber muß es nicht sein, dass ich wieder Daten vom Anfang der zweiten Datei brauche.
for(;;) { CArchive ar(&m_openSchallFile, CArchive::load); Serial.Serialize(ar); arr.Close(); if(Serial.m_bezeichnung=="end") break; }Das ergibt keine Endlosschleife, sobald "end" eingelesen wird, wird die Schleife abgebrochen. Das Archiv schließe ich aus dem Grund immer, da ich dachte so kann ich wieder an den Anfang der Datei zugreifen. Zweiter Vesuch wäre dann so:
CArchive ar(&m_openSchallFile, CArchive::load); for(;;) { Serial.Serialize(ar); if(Serial.m_bezeichnung=="end") break; } arr.Close();Ich muß also einfach immer das Archiv von Anfang an einlesen können.
THX!
-
Echt niemand mehr ne Idee?? Ich häng da immer noch, komm leider gar nicht weiter damit!

-
Falls mal jemand das gleiche Problem hat, hab die Lösung gefunden: Das Archiv UND die Datei muß nach dem Zugriff geschlossen werden.
Also:for(;;) { m_openSchallFile.Open(openSchallFileName,CFile::typeBinary | CFile::modeRead,&fe); CArchive ar(&m_openSchallFile, CArchive::load); Serial.Serialize(ar); arr.Close(); m_openSchallFile.Close(); if(Serial.m_bezeichnung=="end") break; }Gruß Christian