AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Eigenes Dateiformat

Ein Thema von Coder · begonnen am 23. Okt 2010 · letzter Beitrag vom 24. Okt 2010
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#1

AW: Eigenes Dateiformat

  Alt 23. Okt 2010, 20:48
Man nehme Perl oder eine andere beliebige Skriptsprache und konvertiere in ein Format welches mit Delphi leichter zu verarbeiten ist

Alternativ kann man auch einen mit flex selbstgeschriebenen Scanner benutzen.

Ach ja, als Antwort auf Luckies Hinweis XML zu benutzen, möchte ich ein rotzfreches: "Benutz SQLite" einwerfen
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Eigenes Dateiformat

  Alt 23. Okt 2010, 20:59
Leutchens? Für sowas ist Automatentheorie gut
Man nehme einen Bei Google suchendeterministischen endlichen Automaten (DEA) und schon geht das ganze ganz einfach.

In etwa so:
Delphi-Quellcode:
type
  TReader = class
  private
    IsTag: Boolean;
    Values: TDictionary<string, string>;
    Current, Tag: string;
  public
    procedure Feed(c: Char);
    procedure Push;
  end;

procedure TReader.Push;
begin
  if IsTag then begin
    Tag := Current;
    Current := '';
  end else begin
    Values[Tag] := Current;
    Current := '';
  end;
end;

procedure TReader.Feed(c: Char);
begin
  if c = '<then begin
    Push;
    IsTag := true;
  end else if c = '>then begin
    Push;
    IsTag := false;
  end else Current := Current + c;
end;

...

for i := 1 to Length(dateialsstring) do
  Reader.feed(dateialsstring[i]);
Keine Garantie auf Richtigkeit, nur schnell zusammengetippt.

Geändert von implementation (23. Okt 2010 um 21:01 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

AW: Eigenes Dateiformat

  Alt 23. Okt 2010, 21:02
Man beachte die Delphi Version: D3 Prof.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Eigenes Dateiformat

  Alt 23. Okt 2010, 21:04
Man beachte die Delphi Version: D3 Prof.
Demnach geht dann halt kein generisches Dictionary. Aber bei dem Beispiel ging es eher um das Prinzip des Automaten.

[ot]Mit Generics in Delphi habe ich sowieso noch nie gearbeitet. Bin zum FPC und dann zu C# gewechselt, bevor die kamen. Und beim FPC ham die 'ne andere Syntax. [/ot]

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

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

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
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.364 Beiträge
 
Delphi 12 Athens
 
#6

AW: Eigenes Dateiformat

  Alt 23. Okt 2010, 21:27
< durch [ und > durch ] ersetzt und schon hat man eine "leicht" vermurkste INI, welche man z.B. mit Hier im Forum suchenFastIniFiles auslesen könnte.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: Eigenes Dateiformat

  Alt 23. Okt 2010, 21:34
oder so
Code:

"Name":"Karl Heinz",
"Adresse": "Im weiten Feld 23/n/rZimmer 3/n/r79856 Fritzlar"
"Telefon":"07985/ 865656",
"Geb.datum":"14.07.1978"
}
als JSON
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#8

AW: Eigenes Dateiformat

  Alt 23. Okt 2010, 21:06
Man beachte die Delphi Version: D3 Prof.
5, lt. Beitrag. Wobei das an der Kritik nichts ändert. Wie ich das so sehe sind Generics dabei ...
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

AW: Eigenes Dateiformat

  Alt 23. Okt 2010, 21:15
Laut Profil 3. Aber das ändert nichts.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#10

AW: Eigenes Dateiformat

  Alt 23. Okt 2010, 21:40
Man beachte die Delphi Version: D3 Prof.
5, lt. Beitrag. Wobei das an der Kritik nichts ändert. Wie ich das so sehe sind Generics dabei ...
Laut Profil 3. Aber das ändert nichts.
Siehe mein Folgebeitrag. Das generische Dictionary war nur als Quick&Dirty-Beispiel, es ging vielmehr um den DEA.
oder Quick and Dirty
...
Also ich halte den DEA für flexibler, falls das Format noch weiter ausgebaut werden soll.
< durch [ und > durch ] ersetzt und schon hat man eine "leicht" vermurkste INI, welche man z.B. mit Hier im Forum suchenFastIniFiles auslesen könnte.
Die wäre aber sehr vermurkst.
oder so
Code:

"Name":"Karl Heinz",
"Adresse": "Im weiten Feld 23/n/rZimmer 3/n/r79856 Fritzlar"
"Telefon":"07985/ 865656",
"Geb.datum":"14.07.1978"
}
als JSON
Er ist ja nicht auf der Suche nach neuen Möglichkeiten, die Daten zu speichern, sondern möchte Dateien in seinem bisherigen Format auslesen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 04:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz