tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
1
ZUGRIFFE
672
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    andreas_gierisch andreas_gierisch ist offline Mitglied Gold
    Registriert seit
    Oct 2004
    Beiträge
    161
    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 :
    1
    
    file_in.seekg(0,ios::beg);
    Code :
    1
    
    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 :
    1
    
    file_in.seekg(100,ios::beg);
    Code :
    1
    
    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)
     

  2. #2
    etalon etalon ist offline Grünschnabel
    Registriert seit
    Jul 2005
    Beiträge
    1
    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 :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
      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...
     

Ähnliche Themen

  1. FileStream
    Von Polli im Forum Java
    Antworten: 1
    Letzter Beitrag: 11.02.09, 14:45
  2. Zugriff auf FileStream Variable
    Von vb_user im Forum .NET Datenverwaltung
    Antworten: 1
    Letzter Beitrag: 25.07.07, 16:42
  3. FileStream.Read anders als FileStream.Write
    Von Nil18 im Forum .NET Web und Kommunikation
    Antworten: 1
    Letzter Beitrag: 28.09.06, 11:04
  4. Stream anstelle von FileStream
    Von JK_net im Forum .NET Archiv
    Antworten: 1
    Letzter Beitrag: 28.07.05, 13:49
  5. Wie übergebe ich einen Filestream
    Von sisela im Forum C/C++
    Antworten: 5
    Letzter Beitrag: 20.01.04, 17:32