Entwickler-Ecke

Dateizugriff - Dateiformate auslesen


ebs - Di 22.03.05 18:47
Titel: Dateiformate auslesen
Hallo!
Mein Programm muss mit extrem vielen Dateiformaten arbeiten. Diesmal habe ich folgende Frage:
So sieht die Datei aus:

Quelltext
1:
2:
3:
4:
5:
6:
 
    0       0.00    20.0    20.0    20.0     2     203.94   602.0  1021.9   887.9     3     419.03  1059.2  1222.1  1178.9
    1       0.80    20.0    20.0    20.0     2     205.86   606.2  1024.6   891.5     3     420.94  1061.8  1223.6  1180.7
    1       1.60    20.0    20.0    20.0     2     207.77   610.4  1027.3   895.0     3     422.86  1064.5  1225.1  1182.6
    1       2.40    20.0    20.0    20.0     2     209.69   614.6  1029.9   898.6     3     424.77  1067.1  1226.6  1184.4
    1       3.20    20.0    20.0    20.0     2     211.60   618.9  1032.5   902.2     3     426.69  1069.7  1228.2  1186.3

Jede Zahl einer Reihe sollte als eigener String in einer Stringliste stehen.
Beispiel:

Quelltext
1:
2:
3:
4:
5:
6:
zeile1[0]=0,80;
zeile1[0]=20,00;
zeile1[0]=20,00;
zeile1[0]=20,00;
zeile1[0]=3,00;
usw.

Wenn einer eine Idee hat schreib mir!


Delete - Di 22.03.05 19:27

Was spricht dagegen, die Datei in eine StringListe zu laden? Und dann das ganze zu parsen. Ein eindeutige Trennzeichen wäre dann natürlich sehr hilfreich.


jasocul - Di 22.03.05 19:45

Das sieht aber extrem nach FixedFormat aus.
Da hilft nun wirklich ein einfaches Copy(AString, AbWelcherStelle, WievielZeichen).
Auszählen musst du das aber schon selbst.


BenBE - Di 22.03.05 20:18

Trennzeichen haben wir schon:

Zum Lesen kannst Du:

Delphi-Quelltext
1:
Zeilendaten.CommaText := Datei[Zeilennummer];                    


Zum Schreiben der Daten:


Delphi-Quelltext
1:
Datei[Zeilennummer] := Format('%5d %7.2f %5.1f %5.1f %5.1f %5d %7.2f %5.1f %5.1f %5.1f %5d %7.2f %5.1f %5.1f %5.1f', [Var1, Var2, Var3, Var4, ...]);                    


Zum Anfügen einer Neuen Zeilen einfach das Ergebnis von Format an Datei.Add übergeben:

Delphi-Quelltext
1:
Datei.Add(Format('%5d %7.2f %5.1f %5.1f %5.1f %5d %7.2f %5.1f %5.1f %5.1f %5d %7.2f %5.1f %5.1f %5.1f', [Var1, Var2, Var3, Var4, ...]));                    


Zum Veständnis würde ich dir mal die Format-Befehle empfehlen, damit kann man viel machen ^^