Entwickler-Ecke

Dateizugriff - Strings+RichEdit-Inhalt in Datei speichern


macsmac - Di 31.08.04 15:54
Titel: Strings+RichEdit-Inhalt in Datei speichern
Ich möchte ca. 10 Strings und den Inhalt eines oder mehrerer RichEdit's in eine Datei hintereinander speichern.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure TForm1.Save1Click(Sender: TObject);
begin
  If savedialog1.filename='' then
     SaveAs1Click(sender)
  else
    RichEdit1.lines.SaveToFile(savedialog1.filename);
end;


procedure TForm1.SaveAs1Click(Sender: TObject);
begin
  If savedialog1.Execute=true then
     RichEdit1.lines.savetofile(savedialog1.filename);
end;
So kann ich zwar das RichEdit speichern, aber nich die Strings :-(

ich habe hier auch schon in der FAQ etwas gelesen von String->Datei, aber die dort angebene Prozedur krieg ich mit dem Save1Click nicht aufgerufen:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure SaveStringToFile (Filename, SaveString: string);   
var   
  fs:TFileStream;   
begin   
  try   
    if SaveString <> '' then   
      fs.Write (SaveString[1], Length (SaveString));   
  finally   
    fs.Free;   
  end;  
end;
Hätte ansonsten versucht die Strings und die RichEdits zusammenzufügen zu einem String...

Ich bin nicht sehr bewandert in den tieferen Gefilden von Delphi, also bitte keine zu abgehobenen Kommentare.

Danke schon mal im Voraus.

MfG M

Moderiert von user profile iconUGrohne: Code- durch Delphi-Tags ersetzt.


.Chef - Di 31.08.04 15:59
Titel: Re: Strings+RichEdit-Inhalt in Datei speichern
macsmac hat folgendes geschrieben:
Hätte ansonsten versucht die Strings und die RichEdits zusammenzufügen zu einem String...

Und warum versuchst du es nicht? Ist doch eine super Lösung.


Tana´Ri - Di 31.08.04 16:00

schau mal unter TEXTFILE (var F: Textfile) nach, ist vielleicht die einfachste Variante.


macsmac - Di 31.08.04 16:04

Also ich habe jetzt schon was mit StringLists entdeckt, aber mir fiel gerade auf, dass ich da noch ein paar Angeaben habe:

Mein RichEdit wird je um die 800-1500 Zeilen haben.
Ich habe dazu Wordwrap deaktiviert um zu gewärleisten, dass ein Zeilenumbruch nur per Enter erfolgt <- später muss die Datei genauso aussehen und daf nicht nur eine Endloszeile enthalten.!
Meine zusätzlichen Strings sind immer nur 10 + eine Freizeile.

Gibt es nicht eine Möglichkeit ab einer bestimmten Position in der Datei das Richedit einzufügen?

MfG M

Edit: ich gucke mal was TEXTFILE sagt, danke.


.Chef - Di 31.08.04 16:10

Grundsätzlich bei Textdateien musst du dafür alles auslesen, dran rumbasteln und dann neu schreiben. Geht aber alles mit Strings:

Delphi-Quelltext
1:
Gesamtstring:=Vorherstring+RichEdit1.Text+Nachherstring;                    

Schreiben kannst du auch weiterhin mit dem Stream.


macsmac - Di 31.08.04 16:29

.Chef hat folgendes geschrieben:
Grundsätzlich bei Textdateien musst du dafür alles auslesen, dran rumbasteln und dann neu schreiben. Geht aber alles mit Strings:

Delphi-Quelltext
1:
Gesamtstring:=Vorherstring+RichEdit1.Text+Nachherstring;                    

Schreiben kannst du auch weiterhin mit dem Stream.
Schön dumm, habe das .Text ganz übersehen, so geht das natürlich gut. Fehlt nur noch das carriage return. Danke.