Einzelnen Beitrag anzeigen

Benutzerbild von Pr0g
Pr0g

Registriert seit: 21. Mai 2004
809 Beiträge
 
Delphi 7 Personal
 
#16

Re: Eine Datei in 3 Memos laden

  Alt 31. Dez 2004, 01:05
Unter Win9x ist die größe von Ini-Dateien auf 32Kb begrenzt, dann müsstest du, falls es größere Datenmengen sind, eine passende Komponente, wie TBigIniFile nehmem.

Aber es geht auch als Textdatei:
Delphi-Quellcode:
procedure WriteMemos(AMemo1, AMemo2, AMemo3: TMemo; const AFilename: String);
var
  SL: TStrings;
begin
  SL := TStringList.Create;
  try
    SL.AddStrings(AMemo1.Lines);
    SL.Add('[/\Memo/\]');
    SL.AddStrings(AMemo2.Lines);
    SL.Add('[/\Memo/\]');
    SL.AddStrings(AMemo3.Lines);
    SL.SaveToFile(AFilename);
  finally
    SL.Free;
  end;
end;

procedure ReadMemos(AMemo1, AMemo2, AMemo3: TMemo; const AFilename: String);
var
  SL: TStrings;
  i,
  Memo: Integer;
begin
  AMemo1.Clear;
  AMemo2.Clear;
  AMemo3.Clear;
  SL := TStringList.Create;
  try
    SL.LoadFromFile(AFilename);
    Memo := 1;
    for i := 0 to SL.Count - 1 do
    begin
      if SL[i] = '[/\Memo/\]then
      begin
        Inc(Memo);
        Continue;
      end;
      case Memo of
        1: AMemo1.Lines.Add(SL[i]);
        2: AMemo2.Lines.Add(SL[i]);
        3: AMemo3.Lines.Add(SL[i]);
      end;
    end;
  finally
    SL.Free;
  end;
end;
Aufruf:
Delphi-Quellcode:
  WriteMemos(Memo1, Memo2, Memo3, 'c:\test.txt');
// und
  ReadMemos(Memo1, Memo2, Memo3, 'c:\test.txt');
Ich sage nicht, dass es die beste Lösung ist, aber sie funktioniert

MfG Pr0g
  Mit Zitat antworten Zitat