Autor Beitrag
macsmac
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23



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

ausblenden 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:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1112



BeitragVerfasst: Di 31.08.04 15:59 
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.

_________________
Die Antworten auf die 5 häufigsten Fragen:
1. Copy(), Pos(), Length() --- 2. DoubleBuffered:=True; --- 3. Application.ProcessMessages bzw. TThread --- 4. ShellExecute() --- 5. Keine Vergleiche von Real-Typen mit "="!
Tana´Ri
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 230



BeitragVerfasst: Di 31.08.04 16:00 
schau mal unter TEXTFILE (var F: Textfile) nach, ist vielleicht die einfachste Variante.

_________________
mfg
Tana´Ri
macsmac Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1112



BeitragVerfasst: 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:
ausblenden Delphi-Quelltext
1:
Gesamtstring:=Vorherstring+RichEdit1.Text+Nachherstring;					

Schreiben kannst du auch weiterhin mit dem Stream.

_________________
Die Antworten auf die 5 häufigsten Fragen:
1. Copy(), Pos(), Length() --- 2. DoubleBuffered:=True; --- 3. Application.ProcessMessages bzw. TThread --- 4. ShellExecute() --- 5. Keine Vergleiche von Real-Typen mit "="!
macsmac Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23



BeitragVerfasst: 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:
ausblenden 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.