Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Memo-Text in String speichern/wiederherstellen (https://www.delphipraxis.net/84834-memo-text-string-speichern-wiederherstellen.html)

torud 22. Jan 2007 15:20


Memo-Text in String speichern/wiederherstellen
 
Hallo Wissende,

ich weiss, diese Frage ist was absolute Nichtswisser, aber ich bekomme es einfach nicht hin.

Ich lasse einen User freien Text in eine TMemo eingeben. Er kann dort ein Produkt beschreiben. Diesen Text, will ich samt Zeilenumbrüchen in einen String schreiben. Dieser String ist selbst Teil eines mehrdimensionalen Strings. Wie kann ich nun sicherstellen, dass ich die Daten des Memos in den String schreiben kann, und dann auch wieder auslesen kann?

Bisher mache ich es so:

MyData[9,akt_produkt] := memo.text;

Das Problem ist, dass dann die Steuerzeichen irgendwie beim Speichern mit eingespeichert werden. Ich brauche aber den String zwar mit der Info über die Zeilenumbrüche, aber diese sollten in nicht in real gespeichert werden. Geht das überhaupt

Ich schreibe also MyData[0..9,akt_produkt] in eine ini. Das sieht dann in der ini ungefähr so aus, wenn alles ok ist.

prod_1 = name$$nummer$$preis$$sonstiges$$$$$$$$$$$$$$$$zeil e 1$$$$

und so, wenn die zeilen umbrüche mit drin sind:

prod_1 = name$$nummer$$preis$$sonstiges$$$$$$$$$$$$$$$$zeil e 1
zeile 2
zeile 3
$$$$

Hat jemand etwas davon verstanden, was ich suche oder was mein Problem ist und weiss Abhilfe???

Der_Unwissende 22. Jan 2007 15:37

Re: Memo-Text in String speichern/wiederherstellen
 
Hi Thomas,

Zitat:

Zitat von torud
Hallo Wissende

ob das nach dem AGG noch erlaubt ist? Hm.

Was dein Problem angeht, so kannst Du es (denke ich) recht einfach umgehen. Verwende einfach die Funktion StringReplace und ersetz den Zeilenumbruch (chr(13) + chr(10) oder nur eines von beiden, musst Du mal schauen) einfach durch ein Zeichen, dass garantier nicht verwendet wird (z.B. chr(26) = Substitute).
Einen solchen String kannst Du leicht in einer Ini-Datei speichern, da alle Zeilenumbrüche hier durch ein (nicht interpretiertes) Steuerzeichen ersetzt wurden. Beim Laden ersetzt Du dann entsprechend diesen Teilstring wieder durch Zeilenumbrüche und fertig.

Gruß Der Unwissende

Martin K 22. Jan 2007 15:40

Re: Memo-Text in String speichern/wiederherstellen
 
Wenn Du den Inhalt eines TMemo in eine Textdatei speichern willst, kannst Du auch einfach TMemo.SaveToFile() bzw. TMemo.LoadFromFile() verwenden.
Oder ist es nicht das was Du suchst?

torud 22. Jan 2007 15:49

Re: Memo-Text in String speichern/wiederherstellen
 
Ne das suche ich nicht. Das wusste ich schon. Ich will den Inhalt in einem String speichern, der zwar die Steuerzeichen enthält, diese aber in der ini slebst nicht anwendet...

Klaus01 22. Jan 2007 15:56

Re: Memo-Text in String speichern/wiederherstellen
 
Zitat:

Zitat von torud
Ne das suche ich nicht. Das wusste ich schon. Ich will den Inhalt in einem String speichern, der zwar die Steuerzeichen enthält, diese aber in der ini slebst nicht anwendet...

Wie soll das denn gehen?

Wenn sie nicht in der Ini sind, kannst Du sie auch nicht wieder aus der Ini laden.
Es gibt mehrere Möglichkeiten:

- Ersetze #13#10 durch ein Zeichen, welches sonst nicht im Text vorkommt und speicher den String dann in die Ini.
- Speicher den Text in eine Datei und schreibe den Pfad und Dateinamen in die Ini um die Datei bei Bedarf wieder zu laden.
- Oder Du kodierst Deinen String so das er nur Druckbare Zeichen enthält, UUEncode oder Mime würde sich hier anbieten.

Und wenn Du größere Daten in der Ini speichern willst, könntest Du einmal darüber nachdenken MemIni zu verwenden, denn
da gibt es keine 64KByte Begrenzung.

Grüße
Klaus

Blackheart 22. Jan 2007 16:21

Re: Memo-Text in String speichern/wiederherstellen
 
Wäre da nicht KommaText was für Dich.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:23 Uhr.

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