Filestream Fehler

andreas_gierisch

Erfahrenes Mitglied
Hallo, ich bin gestern vom C++ Builder 5.0 auf Version 6.0 umgestiegen.
Ich habe nun folgendes Problem beim Weiterarbeiten an einem Projekt:

Beim Lesen von Daten aus einer Datei tritt ein Fehler auf, der bei Version 5.0 nicht auftrat, dort funktionierte alles einwandfrei. Folgende Befehle funktionieren jetzt immernoch:

Code:
file_in.seekg(0,ios::beg);
Code:
file_in.seekg(0,ios::end);

d.h., das Setzen des Lesezeigers an den Anfang oder das Ende der Datei klappt.

Beim Setzen des Zeigers an eine beliebige Position im Text durch folgende Befehle tritt jedoch ein Fehler auf:

Code:
file_in.seekg(100,ios::beg);
Code:
file_in.seekg(50,ios::cur);

Beim Ausführen dieser Befehle ändert sich an der Position des Zeigers nichts, er bleibt dort, wo er vorher war.

Weiß jemand woran das liegen könnte?


P.S.: Ich hab die Position mithilfe des Befehls tellg() überprüft. (Schritt-für-Schritt-Anweisung und nach jeder Quelltextzeile Position überprüfen)
 
Hallo,

habe das gleiche Problem:

Mit seekp kann ich zwar den Dateizeiger setzen, aber trotzdem fängt er immer am Ende der Datei an zu schreiben.


Code:
  long pos;

  fstream Ziel;
  if (tag) {
    cout<<"ueberschreiben";
    // Datei enthält bereits einen Tag => überschreiben
    Ziel.open(pfad, ios::out | ios::binary | ios::ate);
    if (!Ziel.fail()) {
      Ziel.seekp(-128, ios::end);

      pos += 3;
      Ziel.seekp(pos);
      Ziel.write((char *) text, sizeof(text));

Mit dem Borland Compiler geht es, aber mit dem Borland Builder nicht. Hat jemand eine Ahnung woran das liegen könnte?

Der Zeiger wird zwar gesetzt, aber er hat keine Wirkung...
 

Neue Beiträge

Zurück