Zeiger auf bestimmten Bereich in einer Datei



  • Hallo,
    habe hier ein Programm, das eingegebene Daten auf folgende Weise in eine (binäre) Textdatei speichert:
    Pos Nachname Vorname Land Geburtsjahr
    und das ganze dann zeilenweise, solange ich eingebe...
    Nun meine Frage:
    Ich möchte einen Zeiger auf die letzte Position setzen, um nach einem Neustart des Programms an dieser Stelle weiterzumachen (Sonst fängt der Zähler wieder bei 1 an). Wie mach ich das nun am dümmsten?
    Danke schonmal!
    Bis bald

    Andi



  • Mögtlichkeit 1 Reserviere dir am Anfang der Binaren Datei einen Platz in dem du die Anzahl der geschriebenen Records
    vermerkst. Und speicher die anderen Daten danach.

    Zum lesen
    Datei öffnen
    Anzahl Elemente lesen
    Daten Lesen

    Zum schreiben
    Datei öffnen
    Dummilänge schreiben
    Alle Daten schreiben
    mit fseek auf den Dateianfang positionieren
    echte Lönge schreiben



  • Einfacher:
    WEnn ich dein Problem richtig verstanden habe, reicht es, wenn du einfach mit fseek den dateizeiger auf SEEK_END setzt



  • Aus einer C-Hilfe (fopen)

    a => Öffnet eine Datei für Schreiboperationen. Falls die Datei bereits existiert, werden weitere Daten an das aktuelle Dateiende angehängt, ansonsten wird sie automatisch erzeugt.



  • Erstmal danke für die schnelle Hilfe.
    Das mit dem Append (a) hab ich auch gefunden, nur will ich ja die Position einlesen, damit ich weitere Daten anhängen kann mit der richtigen Nummerierung und net wieder von 1 an 😉

    Gruß Andi



  • Deshalb mein Vorschlag die Anzahl records am Anfan der Datei zu speichern.


Anmelden zum Antworten