Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Frage zu ASCII Dateien auslesen (https://www.delphipraxis.net/105630-frage-zu-ascii-dateien-auslesen.html)

jmich 26. Dez 2007 14:48


Frage zu ASCII Dateien auslesen
 
Hallo Leute,

Ich möchte folgende Datei-Muster in einen Tree oder
Stringgrid auslesen.
Die erste Datei ist eine reine ASCII-Datei,
wobei diese Datei feste Feldlängen hat = 80 Stellen bzw Zeichen

http://www.jmichaelis.de/d81.jpg

Die zweite Datei sieht so aus:

Die Dateien sind GAEB-Dateien - zu finden in der Baubranche.


#begin[GAEB]
#begin[GAEBInfo]
[Version]1.2[end]
[VersMon]3[end]
[VersJahr]2002[end]
[Datum]06.01.2003[end]
[Uhrzeit]17:04[end]
[ProgSystem]MWM-Primo / G2K Toolbox V1.2 R20020516[end]
[ProgName]GAEB2000-Export-Treiber V4[end]
[Zeichensatz]ANSI[end]
#end[GAEBInfo]
#begin[Vergabe]
[DP]81[end]
#begin[VergabeInfo]
[Wae]EURO[end]
[WaeBez]EURO[end]
#end[VergabeInfo]
#begin[AG]
#end[AG]
#begin[AN]
#end[AN]
#begin[LV]
#begin[LVInfo]
[Name]Muster[end]
[Bez]Muster GAEB2000-Buch[end]
[Datum]06.01.2003[end]
[KurzLang]1[end]
#begin[LVGlied]
[Typ]LVStufe[end]
[Bez][end]
[Laenge]1[end]
#end[LVGlied]
#begin[LVGlied]
[Typ]LVStufe[end]
[Bez][end]
[Laenge]1[end]
#end[LVGlied]
#begin[LVGlied]
[Typ]Position[end]
[Laenge]1[end]
#end[LVGlied]
#end[LVInfo]
#begin[LVBereich]
[OZ]1[end]
[Bez]L O S : 1[end]
#begin[LVBereich]
[OZ]10[end]
[Bez]Abwasserleitung[end]
#begin[Position]
[OZ]101[end]
[Menge]93,000[end]
[ME]m[end]
#begin[Beschreibung]
[Kurztext]{\rtf1\ansi\deff0{\fonttbl\f0\fmodern Courier New;}
Entwässerungsleitung aus Kunststoffrohren\par}[end]
[Langtext]{\rtf1\ansi\deff0{\fonttbl\f0\fmodern Courier New;}
Entwässerungsleitung aus Kunststoffrohren nach sta-\par
tischen Erfordernissen nach DIN 4033 herstellen\par
einschl. Erdarbeiten in Boden der Klassen 3 bis 5 so-\par
wie ggf. einschl. Verbau.\par
Ggf. erforderliche Wasserhaltung bis zu einer Pumpen-\par
Leitung von 10 m3 Förderdurchfluß x 5 m geodätischer\par
Förderhöhe je Stunde und Haltung wird nicht gesondert\par
vergütet.\par
Anschlüsse an Schächte und Rohrleitungen werden ge-\par
sondert vergütet.\par
Material = Rohr aus PVC hart, DIN 19 534, Form A,\par
"Auflagerwinkel 120 Grad"\par
Rohrverbindung durch Steckmuffen\par
Auflager aus Sand oder Kiessand herstellen. Material\par
liefert AN.\par
"Korngröße 0,2-OPS"\par
Verlegetiefe\par
"max. 1,25 m"\par
überdeckung.\par
Aushub seitlich lagern und zum Verfüllen verwenden.\par
Überschüssigen Aushub fördern und im Baugelände\par
nach Angabe des AG einbauen und verdichten.\par}[end]
#end[Beschreibung]
#end[Position]
#begin[Position]
[OZ]102[end]
[Menge]1,000[end]
[ME]m[end]
#begin[Beschreibung]
[Kurztext]{\rtf1\ansi\deff0{\fonttbl\f0\fmodern Courier New;}
wie vor beschrieben,jedoch DN 125\par}[end]
[Langtext]{\rtf1\ansi\deff0{\fonttbl\f0\fmodern Courier New;}
wie vor beschrieben,jedoch DN 125\par}[end]
#end[Beschreibung]
#end[Position]


Wer kann mir helfen.

MFG

JMich

Jelly 26. Dez 2007 14:57

Re: Frage zu ASCII Dateien auslesen
 
Was hast du denn bis jetzt? Wo hakts denn?

jmich 26. Dez 2007 16:04

Re: Frage zu ASCII Dateien auslesen
 
Hi Jelly,

ich weiss nicht wie ich den Code dafür schreiben müsste.
Das Problem ist, das die Daten ins Stringgrid oder ViewTree oder Tree geschrieben
werden müssen. (So eine Art Parser).

Ich brauche das ASCII zum Lesen für meinen eigenen GAEB-Viewer (der enstehen soll).

Vielen Dank für Deine schnelle Antwort

Gruß

Jmich

Jelly 26. Dez 2007 17:33

Re: Frage zu ASCII Dateien auslesen
 
Das Stichwort hast du ja schon selbst gegeben: Parser. Lade die Daten irgendwie in den Speicher (z.B. in eine TStringList) und wühle dich durch die Zeichen. Ich denke, Funktion wie Pos, Copy, Length könnten dir dann dabei hilfreich sein.

DeddyH 26. Dez 2007 17:37

Re: Frage zu ASCII Dateien auslesen
 
In einem anderen Forum wurde auf diese Seite verwiesen, das sollte erst einmal weiterhelfen.

HERMES 4. Jan 2008 20:06

Re: Frage zu ASCII Dateien auslesen
 
Wenn es noch aktuell ist:
http://delphiwiki.de/wiki/index.php?title=SRLexYacc

hier gibt es eine Delphiportierung von Lex und Yacc, womit man sich parser für so ziemlich alles in recht kurzer Zeit basteln kann.

mfg


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:02 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz