Thema: Delphi Eigenes Dateiformat

Einzelnen Beitrag anzeigen

Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#13

AW: Eigenes Dateiformat

  Alt 23. Okt 2010, 21:24
oder Quick and Dirty

Delphi-Quellcode:
type
  TAdresse=Record
    Name:String;
    Adresse:String;
    Telefon:String;
    Geboren:String;
  End;
TAdressArray=Array of TAdresse;

var
  Form1: TForm1;
  AdressArray:TAdressArray;

implementation

{$R *.dfm}
Procedure ReadToArray(fn:String);
type
  rStatus=(Name,Adresse,Telefon,Geboren);
var
  sl:TStringList;
  i:Integer;
  lStatus:rStatus;
  Procedure AppendTo(Var s:String);
    var
      nz:String;
    begin
      if Length(s)>0 then nz := #13#10 else nz := '';
      s := s + nz+ sl[i];

    end;
begin
  sl := TStringList.Create;
  try
    sl.LoadFromFile(fn);
    for I := 0 to sl.Count - 1 do
       begin
         if Trim(sl[i])='<Name>then
            begin
               lStatus:=Name;
               SetLength(AdressArray,High(AdressArray) + 2);
            end
         else if Trim(sl[i])='<Adresse>then
            begin
               lStatus:=Adresse;
            end
         else if Trim(sl[i])='<Telefon>then
            begin
               lStatus:=Telefon;
            end
         else if Trim(sl[i])='<Geb.datum>then
            begin
               lStatus:=Geboren;
            end
         else
            begin
              case Lstatus of
                Name: AppendTo( AdressArray[High(AdressArray)].Name);
                Adresse: AppendTo( AdressArray[High(AdressArray)].Adresse);
                Telefon: AppendTo( AdressArray[High(AdressArray)].Telefon);
                Geboren: AppendTo( AdressArray[High(AdressArray)].Geboren);
              end;
            end;

       end;
  finally
    sl.Free;
  end;
end;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)

Geändert von Bummi (23. Okt 2010 um 21:27 Uhr)
  Mit Zitat antworten Zitat