Einzelnen Beitrag anzeigen

Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.029 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: Mit savetoFile/loadfromFile Daten ins Formular bringen

  Alt 25. Nov 2018, 13:07
Moin,

bevorzugen würde ich Objeklisten, wenn ganze Objekte gespeichert werden sollen.
Deine Aufgabe scheint hier zu sein, verschiedene Eigenschaften unterschiedlichster
Objekte zu befüllen, zu sichern. Da neige ich zur bewährten StringList zu greifen.
Hier einige Beispiele

1. Laden / Speichern
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  tempStringList : TStringList;
  fileName : String;
begin
  fileName := 'c:\temp\myfile.txt';
  tempStringList := TStringList.Create;
  try
    tempStringList.LoadFromFile(fileName); {Load string from text file}
    showmessage( tempStringList.Text);
    tempStringList.SaveToFile(fileName); {save the text in a file }
  finally
    tempStringList.Free;
  end;
end;
2. Quellcodebasiertes Befüllen
Delphi-Quellcode:
ar
  animals : TStringList; // Define our string list variable
  i : Integer;
begin
  // Define a string list object, and point our variable at it
  animals := TStringList.Create;

  // Now add some names to our list
  animals.Add('Cat');
  animals.Add('Mouse');
  animals.Add('Giraffe');

  // Now display these animals
  for i := 0 to animals.Count-1 do
    ShowMessage(animals[i]); // animals[i] equates to animals.Strings[i]

  // Free up the list object
  animals.Free;
end;
3, Befüllen / Auslesen von Namen und zugehörigen Werten
Delphi-Quellcode:
var
  names : TStringList; // Define our string list variable
  ageStr : String;
  i : Integer;
begin
  // Define a string list object, and point our variable at it
  names := TStringList.Create;

  // Now add some names to our list
  names.CommaText := 'Neil=45, Brian=63, Jim=22';

  // And now find Brian's age
  ageStr := names.Values['Brian'];

  // Display this value
  ShowMessage('Brians age = '+ageStr);

  // Now display all name and age pair values
  for i := 0 to names.Count-1 do
  begin
    ShowMessage(names.Names[i]+' is '+names.ValueFromIndex[i]);
  end;

  // Free up the list object
  names.Free;
end;

4. Setzen von Namen-Wert-Kombinationen aus einem String
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  SL: TStringList;
  Temp: string;
  i: Integer;
begin
  SL := TStringList.Create;
  SL.Delimiter := '|';
  SL.QuoteChar := '"';
  SL.StrictDelimiter := True;
  SL.DelimitedText := 'O=0 | ! .!=!.!';
  Temp := 'Count: ' + IntToStr(SL.Count) + #13;
  for i := 0 to SL.Count - 1 do
    Temp := Temp + Format('Name: %s Value: %s'#13,
              [SL.Names[i], SL.ValueFromIndex[i]]);
  ShowMessage(Temp);
end;

Für das Speichern/Laden von einigen Eigenschaften ist das gutn machbar.

Viele Grüße // Martin
Martin Schaefer
Phaeno
  Mit Zitat antworten Zitat