Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Mehrere Memos in einer Datei Speichern (https://www.delphipraxis.net/156118-mehrere-memos-einer-datei-speichern.html)

Portfreak 20. Nov 2010 16:49

Delphi-Version: 5

Mehrere Memos in einer Datei Speichern
 
Hallöchen!

Ich bräuchte dringend fachkundige Hilfe! Zurzeit arbeite ich an einem Projekt, das auf Memofelder basiert. Ich würde gerne eine Speichern und Laden Option hinzufügen weis nur nicht wie ich es anstellen soll.

Die erste Möglichkeit bot sich durch

Delphi-Quellcode:
 
...
  if OpenDialog1.Execute then
     begin
       Memo1.Lines.SaveToFile(OpenDialog1.Filename);
     end;
...

und
...
if OpenDialog1.Execute then
     begin
       Memo1.Lines.LoadFromFile(OpenDialog1.Filename);
     end;
...
Ich verwende bis zu 5 Memofelder und würde deren inhalt gerne in eine Datei speichern.
Ich hab es schon mit Assignfile etc. probiert. Leider ohne erfolg :(


Danke für angebotene Hilfe!

toms 20. Nov 2010 16:50

AW: Mehrere Memos in einer Datei Speichern
 
Hallo

Ein Stichwort: Streams

mkinzler 20. Nov 2010 16:55

AW: Mehrere Memos in einer Datei Speichern
 
.SaveToFile() erzeugt eine neue Datei bzw. überschreibt eine vorhandene.

Delphi-Quellcode:
var
   sl: TStrings;
begin
   sl := TStringList.Create;
   ...
   sl.Append( Memo1.Lines);
   sl.Append( Memo2.Lines);
   ...
   sl.SaveToFile(OpenDialog1.Filename);
   ...
   sl.Free;

s.h.a.r.k 20. Nov 2010 17:00

AW: Mehrere Memos in einer Datei Speichern
 
Das Problem ist, wie mkinzler schon gesagt hat, dass
Delphi-Quellcode:
SaveToFile()
leider den schon vorhandenen Inhalt überschreibt, d.h. du solltest das nach Möglichkeit selbst machen. Das kannst du entweder über Streams handeln, oder auch via Hier im Forum suchenAssignFile(), Hier im Forum suchenReset() bzw. Hier im Forum suchenRewrite(), Hier im Forum suchenWriteln() bzw. Hier im Forum suchenReadln() erledigen.

Zuvor müsstest du dir allerdings das Format überlegen, in welchem du die Daten speichern willst. Du musst beim Auslesen später ja wieder den Text trennen können!

himitsu 20. Nov 2010 17:02

AW: Mehrere Memos in einer Datei Speichern
 
oder eine spezielle Zeile einfügen, woran man die Texte wieder trennen kann.

Also jeweils ein Memo.Lines mit .AddStrings zu einer StringListe hinzufügen, dann über .Add eine Kennzeile (eine Zeile/Wörter, welche es sonst nicht gibt) anhängen und nun weitere Memos dran.
Beim Auslesen nun Anhand dieser Zeile(n) die Stringliste wieder auf die Memos aufteilen.

Portfreak 20. Nov 2010 21:09

AW: Mehrere Memos in einer Datei Speichern
 
Vielen Dank für die Antworten!

Mittlerweile hab ich's geschafft die Inhalte der Memofelder 1-3 in eine *.txt zu speichern.

Delphi-Quellcode:
procedure TRechner.BtSaveClick(Sender: TObject);
 var
   myFile : TextFile;
   text  : string;
begin
   AssignFile(myFile, EdFileName.Text);
   ReWrite(myFile);

//Memo1
   Write(myFile,'Memo1Anfang', '');
   WriteLn(myFile);

   Write(myFile, Memo1.Text, ' ');
   Write(myFile,'Memo1Ende', '');
   WriteLn(myFile);
   WriteLn(myFile);

//Memo2
   Write(myFile, 'Memo2Anfang', '');
   WriteLn(myFile);
 
   Write(myFile, Memo2.Text,' ');
   Write(myFile,'Memo2Ende', '');
   WriteLn(myFile);
   WriteLn(myFile);

//Memo3
   Write(myFile, 'Memo3Anfang', '');
   WriteLn(myFile);
   Write(myFile, Memo3.Text,' ');
   Write(myFile,'Memo3Ende', '');
   WriteLn(myFile);
 
    CloseFile(myFile);
 
   Reset(myFile);

   while not Eof(myFile) do
   begin
     ReadLn(myFile, text);
   end;

   CloseFile(myFile);
 end;
Dadurch konnte ich eine geordnete struktur beim speichern herstellen die so ausssah

Zitat:

Memo1Anfang
Feld1
Feld2
Memo1Ende

Memo2Anfang
Feld3
Feld4
Memo2Ende

Memo3Anfang
Feld5
Feld6
Memo3Ende
Jetzt bin ich am grübbeln wie man nun diese Werte wieder in die Memofelder LADEN kann. Ich hab da echt Null plan :S...
Irgendwie soll das programm die Werte zuordnen können.

Brauche nochmals eure hilfe :)!
Danke!!

Bummi 20. Nov 2010 21:26

AW: Mehrere Memos in einer Datei Speichern
 
wenn Du schon so angefangen hast,
in einem Loop readln und Ziel.add wenn Ziel<>nil
wenn Du eine Anfangmarke findenst, Ziel=Zielmemo
wenn Du eine EndeMarke findest Ziel=nil

Portfreak 20. Nov 2010 21:34

AW: Mehrere Memos in einer Datei Speichern
 
Danke!!

Nurnoch eine unverschämte bitte ^^": Ich bräuchte eine kleine starthilfe in sachen eines loops in verbindung mit dem einlesen.

Hihi... ^^"

Bummi 20. Nov 2010 21:38

AW: Mehrere Memos in einer Datei Speichern
 
am Ende von Posting #6 machst Du es doch schon...

Sir Rufo 20. Nov 2010 21:50

AW: Mehrere Memos in einer Datei Speichern
 
Zitat:

Zitat von Bummi (Beitrag 1062917)
am Ende von Posting #6 machst Du es doch schon...

"...denn sie wissen nicht was sie tun..." :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:08 Uhr.
Seite 1 von 3  1 23      

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