Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi TMemo: Inhalt laden und speichern (https://www.delphipraxis.net/125387-tmemo-inhalt-laden-und-speichern.html)

Carsten1234 5. Dez 2008 06:19


TMemo: Inhalt laden und speichern
 
Hallo zusammen,

ich möchte (neben div. anderen Daten) den Inhalt eines TMemo in ein Record speichern (TMemo.Lines.SaveTo... und TMemo.Lines.LoadFrom... sind bekannt). Angedacht hatte ich dazu ein begrenztes array of char, was an sich auch gut klappt, Probleme jedoch bereitet der Zeilenumbruch. Ein #10 und/oder #13 eines "User-
" zeigt beim Laden nur merkwürdige Sonderzeichen.
Frage: Wie lässt sich ein Zeilenumbruch speichern und natürlich auch wieder laden?

Danke vorab und Gruß, Carsten

P.S. Ein array of char ist kein Must-To-Have, alternative Vorschläge sind gerne genommen, nur MUSS der Inhalt des TMemo mit in das Record

tomsson74 5. Dez 2008 08:02

Re: TMemo: Inhalt laden und speichern
 
Ich bin mir nicht sicher ob ich Dich richtig verstanden habe, aber wie wärs wenn Du den Inhalt des Memos einfach in einem Sting speicherst ? Und wenn das ein Record sein muss dann würde das in etwa so aussehen:

Delphi-Quellcode:
type
  MyRecord = record
    Inhalt : String; // oder auch String[X], wenn der String eine feste Länge X haben soll
  end;

(...)

  var
    Rec : MyRecord;

(...)

   Rec.Inhalt := Memo1.Text;

taaktaak 5. Dez 2008 08:19

Re: TMemo: Inhalt laden und speichern
 
Moin, Moin.
Die Frage ist, was weiter mit dem Record geschehen soll. Wenn die Records in einer typisierten Datei gespeichert werden sollen, wirst du mit Strings Probleme bekommen. Da in diesem Fall nur der Zeiger auf den String im Record enthalten ist, lässt sich das Record-Array nicht ohne weiteres in einer Datei speichern.

Carsten1234 5. Dez 2008 08:59

Re: TMemo: Inhalt laden und speichern
 
Ich löse es jetzt so, dass ich vor dem Speichern eine verschachtelte Schleife habe, in der ich zunächst über
0..TMemo.Lines.Count-1
und dann im inneren über
1 to Length({Zeile})
jede Zeile zeichenweise auslesen und bei #0 selbst ein #13 im Array setze.
Beim Laden erfolgt der umgekehrte Weg, wenn ich ein #13 finde, schreibe ich via TMemo.Lines.Add(...) den String weg.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:10 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz