AnsiString in Datei schreiben



  • Hallo,

    ich habe verschiedene AnsiStrings, die alle unterschiedlich lang sind.
    Um beim einlesen keine Probleme zu bekommen möchte ich den ganzen AnsiString in die Datei schreiben. Aber wie?

    In den FAQs / Suche hab ich nichts weiteres gefunden. Ich hab mal was von Serialisierung gehört. Aber keine Ahnung ob das richtig oder falsch ist.

    Danke



  • Ich versteh nicht ganz was du meinst? Du kannst ja die Länge des AnsiStrings ja mit seinen internen Methoden bestimmen?

    -junix



  • Ich möchte generell einfach den Text der im AnsiString steht in eine Datei speichern und diesen dann wieder auslesen.
    Der Text ist immer unterschiedlich lang. Das hat mir Probleme bereitet beim auslesen. Da ich dann bei fread eine Anzahl von Bytes angeben muss.

    Ich sitzt seit zwei tagen über den Problem und find keine Lösung nur mit C-Strings oder wenn alle Strings gleich lang sind.



  • Was verwendest du denn für ein Fileformat?

    -junix



  • Fileformat ?! Endung von der Datei... "dat"

    Hängt das damit zusammen ???



  • Diehler,

    Diehler schrieb:

    Der Text ist immer unterschiedlich lang. Das hat mir Probleme bereitet beim auslesen. Da ich dann bei fread eine Anzahl von Bytes angeben muss.

    Du solltest eine Schleife für das Einlesen verwenden (falls ich die Frage richtig verstanden habe). Lies den Text Block-weise in einen Puffer und setze aus den Blöcken den Gesamttext zusammen.
    "fread" scheint mir da allerdings nicht das geeignete Mittel zu sein. Ich würde TFileStream empfehlen ...



  • Hallo Diehler,
    ich möchte den Vorschlag von dschensky erweitern. Häng vor dem Schreiben des AnsString ein "\r\n" an den String dann brauchst du beim Lesen nur die Kombination suchen und hast den Text jeden Schreibvorganges getrennt. Falls die Strings nicht schon so abgeschlossen sind.

    Evi48



  • Oder spar dir das ganze Geeier und benutze eine TStringlist.
    Dito für's Auslesen.


Anmelden zum Antworten