![]() |
Mehrere Memo's Speicher
Hi, habe mal ne Frage.
Kann man z.B. 5 Memo inhalte zusammen in einer *.txt Speichern und die Gepeicherten inhalte, wieder in die einzelnen Memos Laden. :gruebel: z.B. so
Delphi-Quellcode:
procedure TForm7.Button2Click(Sender: TObject);
Var memos :TFileName; begin memos:= ExtractFilePath(ParamStr(0))+'Bemerkungen\'+ Edit3.Text +'.txt'; Memo1-5.SaveToFile(memos);// sowas ähnliches end; |
Re: Mehrere Memo's Speicher
Hallo Sascha,
keine Frage - du kannst den Inhalt mehrerer Memos hintereinander in dieselbe Text-Datei schreiben. Damit du beim Einlesen merkst, welche Zeilen zusammen gehören, musst du entweder die Zeilenanzahl voran stellen oder eine Trennzeile mit ausgeben.
Delphi-Quellcode:
Getippt und nicht getestet.
procedure SaveMemos(memos: array of TMemo; fn: TFileName);
var i: Integer; s: TStream; line: String; begin s := TFileStream.Create(fn, fmCreate); for i := 0 to High(memos) do begin line := IntToStr(memos[i].Lines.Count) + sLineBreak; // memos statt memo s.Write(line[1], Length(line)); memos[i].Lines.SaveToStream(s); // memos statt memo end; s.Free; end; Grüße vom marabu |
Re: Mehrere Memo's Speicher
Speichern:
Delphi-Quellcode:
Laden:
var
FileStream: TMemoryStream; begin FileStream := TMemoryStream.Create; FileStream.Write(Length(Memo1.Text), SizeOf(Integer)); FileStream.Write(Memo1.Text, Length(Memo1.Text)); FileStream.Write(Length(Memo2.Text), SizeOf(Integer)); FileStream.Write(Memo2.Text, Length(Memo1.Text)); {...} FileStream.SaveToFile('FileName'); FileStream.Free; end;
Delphi-Quellcode:
Ist ungetestet, aber müsste so klappen.
var
FileStream: TMemoryStream; pos,l,i: Integer; begin FileStream := TMemoryStream.Create; FileStream.LoadFromFile('FileName'); pos := 0; l := 0; for i := 1 to 5 do begin FileStream.Position := pos; FileStream.Read(l, SizeOf(Integer)); FileStream.Position := pos + SizeOf(Integer); case i of 1: FileStream.Read(Memo1.Text ,l); {...} 5: FileStream.Read(Memo5.Text ,l); end; pos := pos + l + SizeOf(Integer); end; FileStream.Free; end; Zur Struktur: Du speicherst immer zuerst die Anzahl der Zeichen und dann den Text selber. Beim Auslesen ebenso. |
Re: Mehrere Memo's Speicher
Etwas, womit man leichter zurecht kommt:
--------------------- Aso... Bevor der Code kommt ^^ Falsche Sparte! Definition von "Freeware" (siehe Hauptseite): "Freeware-Programme (mit oder ohne Sourcecode) zum Testen und Diskutieren" --------------------- Speichern:
Delphi-Quellcode:
Lesen:
memoFile := TStringList.Create;
try memoFile.Add(IntToStr(High(memos))); for i := 0 to High(memos) do begin memoFile.Insert(i + 1, memos[i].Count); memoFile.Add(memos[i].Text); end; memoFile.SaveToFile(FILENAME); finally memoFile.Free; end;
Delphi-Quellcode:
memoFile := TStringList.Create;
try memoFile.OpenFromFile(FILENAME); for i := 0 to StrToIntDef(memoFile[0], 0) do begin bufferText := ''; if i < StrToIntDef(memoFile[0], 0) then for j := StrToInt(memoFile[i + 1]) to StrToInt(memoFile[i + 2]) - 1 do begin bufferText := bufferText + memoFile[j]; end else for j := StrToInt(memoFile[i + 1]) to memoFile.Count - 1 do begin bufferText := bufferText + memoFile[j]; end memos[i].Text := bufferText; end; finally memoFile.Free; end; |
DP-Maintenance
Dieses Thema wurde von "Matze" von "Freeware" nach "VCL / WinForms / Controls" verschoben.
Es handelt sich nicht um Freeware. Daher *schieb* ;) |
Re: Mehrere Memo's Speicher
Hi danke erstmal für die Zahlreichen Antworten :lol:
Womit ich etwas leichter zurecht komme ist das vom Cruiser aber da fehlen anscheinen noch Variablen Kann mir da mal einer bitte weiter helfe finde es leider nicht. Welche Variablen :gruebel:
Delphi-Quellcode:
procedure TForm7.Panel1Click(Sender: TObject);
var FileStream: TMemoryStream; memos :TFileName; begin FileStream := TMemoryStream.Create; FileStream.Write(Length(Memo1.Text), SizeOf(Integer)); FileStream.Write(Memo1.Text, Length(Memo1.Text)); FileStream.Write(Length(Memo2.Text), SizeOf(Integer)); FileStream.Write(Memo2.Text, Length(Memo1.Text)); memos:= ExtractFilePath(ParamStr(0))+'Bemerkungen\'+ Edit3.Text +'.txt'; FileStream.SaveToFile(memos); FileStream.Free; end; |
Re: Mehrere Memo's Speicher
Was für Variablen sollen denn da fehlen, was für eine Fehlermeldung kommt ?
Gruß |
Re: Mehrere Memo's Speicher
Dieser Fehler
Delphi-Quellcode:
an jeder stelle an der Text steht
[Fehler] Unit7.pas(417): Variable erforderlich
|
Re: Mehrere Memo's Speicher
Sind die Memos auf derselben Form ?
|
Re: Mehrere Memo's Speicher
Ja
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:01 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