Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi RichEdit und Edit in einer Datei speichern (https://www.delphipraxis.net/125827-richedit-und-edit-einer-datei-speichern.html)

Thomas F 12. Dez 2008 15:44


RichEdit und Edit in einer Datei speichern
 
Hallo,

wie kann man den Text eines Richedits und eines normalen Edits in ein und derselben Datei speichern , und bei Bedarf wieder laden?
Mit ner Stringlist geht glaube ich nicht, weil dann die ganzen Textformatierungen (Text-Farbe, Schrift)
verloren gehn.Extra wegen einem TEdit ne neue Datei anlegen , wäre auch unsinnig.
Im TEdit steht der Betreff einer Email, im RichEdit steht dann der Text der Email und ich wollte die Email abspeichern.

mkinzler 12. Dez 2008 15:46

Re: RichEdit und Edit in einer Datei speichern
 
Schau mal nach TextFile, AssignFile, Write/WriteLn ...

Thomas F 12. Dez 2008 16:36

Re: RichEdit und Edit in einer Datei speichern
 
Ach, ja.....

So könnte es funktionieren.....

Delphi-Quellcode:
procedure TForm6.Button7Click(Sender: TObject);
var f: Textfile;
begin
assignfile(f,'Email');
try append(f);
write(f,edit1.text);
write(f,richedit1.text);
finally
closefile(f);
end;
end;
Aber bleiben die Text-Formatierungen erhalten (Schrift, Farbe......) ?????

Fussball-Robby 12. Dez 2008 16:40

Re: RichEdit und Edit in einer Datei speichern
 
Zitat:

Zitat von Thomas F
Aber bleiben die Text-Formatierungen erhalten (Schrift, Farbe......) ?????

Beim RichEdit werden alle Formatierungen mitgespeichert, beim Edit nicht.

turboPASCAL 12. Dez 2008 16:59

Re: RichEdit und Edit in einer Datei speichern
 
Pappe den Edittext an bzw. in das Richedit zB. als letzte Zeile. Dann kannst du das Richedit über SaveToFile speichern.
Beim Laden des Richedits bzw. nachdem Laden kannst du die Letzte Zeile aus dem RichEd. in dein Edit kopieren und dann
die betr. Zeile im RichEd. löschen.

Thomas F 12. Dez 2008 17:14

Re: RichEdit und Edit in einer Datei speichern
 
Zitat:

Zitat von turboPASCAL
Pappe den Edittext an bzw. in das Richedit zB. als letzte Zeile. Dann kannst du das Richedit über SaveToFile speichern.
Beim Laden des Richedits bzw. nachdem Laden kannst du die Letzte Zeile aus dem RichEd. in dein Edit kopieren und dann
die betr. Zeile im RichEd. löschen.

Ja,Danke

Ich probier das mal

Thomas F 12. Dez 2008 21:51

Re: RichEdit und Edit in einer Datei speichern
 
Ich habe mir etwas überlegt

Ich könnte auch ein zweites Richedit (unsichtbar) nehmen, und mit dem die einzelnen Texte zuordnen,laden und speichern.

Das wäre am einfachsten.

himitsu 12. Dez 2008 22:16

Re: RichEdit und Edit in einer Datei speichern
 
Zitat:

Zitat von Thomas F
Code:
...
Write[color=#ff0000][b]Ln[/b][/color](f,edit1.text);
...

wenn schon, dann so, dann hat man 'nen Zeilenumbruch als Trennung zwischen Edit und RichEdit, oder wie willst du beim Laden beides wieder trennen? (ohne ein Trennzeichen, oder irgend 'ne andere Markierung/Längenangabe)


Aber wozu denn ein verstecktes Objekt?

Delphi-Quellcode:
{speichern}
RichEdit1.Lines.BeginUpdate;
RichEdit1.Lines.Insert(0, Edit1.Text);
RichEdit1.Lines.SaveToFile('file.rtf');
//RichEdit1.Lines.Delete(0); // eventuell die Zeile wieder löschen
RichEdit1.Lines.EndUpdate;


{laden}
RichEdit1.Lines.BeginUpdate;
RichEdit1.Lines.LoadFromFile('file.rtf');
Edit1.Text := RichEdit1.Lines[0];
RichEdit1.Lines.Delete(0);
RichEdit1.Lines.EndUpdate;

turboPASCAL 12. Dez 2008 22:27

Re: RichEdit und Edit in einer Datei speichern
 
So war's gedacht, danke himitsu. ^^

Thomas F 13. Dez 2008 17:08

Re: RichEdit und Edit in einer Datei speichern
 
Zitat:

Zitat von himitsu

Delphi-Quellcode:
{speichern}
RichEdit1.Lines.BeginUpdate;
RichEdit1.Lines.Insert(0, Edit1.Text);
RichEdit1.Lines.SaveToFile('file.rtf');
//RichEdit1.Lines.Delete(0); // eventuell die Zeile wieder löschen
RichEdit1.Lines.EndUpdate;


{laden}
RichEdit1.Lines.BeginUpdate;
RichEdit1.Lines.LoadFromFile('file.rtf');
Edit1.Text := RichEdit1.Lines[0];
RichEdit1.Lines.Delete(0);
RichEdit1.Lines.EndUpdate;

Ich habs probiert, funktioniert einwandfrei

Danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:22 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