AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Mehrere Memo's Speicher

Ein Thema von SaFu · begonnen am 24. Jan 2007 · letzter Beitrag vom 25. Jan 2007
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#1

Mehrere Memo's Speicher

  Alt 24. Jan 2007, 19:36
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.



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;
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Mehrere Memo's Speicher

  Alt 24. Jan 2007, 19:54
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:
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;
Getippt und nicht getestet.

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Mehrere Memo's Speicher

  Alt 24. Jan 2007, 20:06
Speichern:

Delphi-Quellcode:
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;
Laden:

Delphi-Quellcode:
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;
Ist ungetestet, aber müsste so klappen.

Zur Struktur: Du speicherst immer zuerst die Anzahl der Zeichen und dann den Text selber. Beim Auslesen ebenso.
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#4

Re: Mehrere Memo's Speicher

  Alt 24. Jan 2007, 20:55
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:
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;
Lesen:
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;
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
24. Jan 2007, 21:13
Dieses Thema wurde von "Matze" von "Freeware" nach "VCL / WinForms / Controls" verschoben.
Es handelt sich nicht um Freeware. Daher *schieb*
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#6

Re: Mehrere Memo's Speicher

  Alt 24. Jan 2007, 22:08
Hi danke erstmal für die Zahlreichen Antworten

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

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;
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Mehrere Memo's Speicher

  Alt 24. Jan 2007, 22:11
Was für Variablen sollen denn da fehlen, was für eine Fehlermeldung kommt ?

Gruß
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#8

Re: Mehrere Memo's Speicher

  Alt 24. Jan 2007, 22:13
Dieser Fehler

[Fehler] Unit7.pas(417): Variable erforderlich an jeder stelle an der Text steht
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#9

Re: Mehrere Memo's Speicher

  Alt 24. Jan 2007, 22:18
Sind die Memos auf derselben Form ?
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#10

Re: Mehrere Memo's Speicher

  Alt 24. Jan 2007, 22:20
Ja
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:36 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