AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Ascii-Datei analysieren

Ein Thema von hgiel · begonnen am 5. Apr 2005 · letzter Beitrag vom 5. Apr 2005
Antwort Antwort
hgiel

Registriert seit: 4. Apr 2005
61 Beiträge
 
#1

Ascii-Datei analysieren

  Alt 5. Apr 2005, 07:33
Hallo,

habe schon einige Infos zum Thema Stringzerlegung und Dateiverarbeitung durch das Forum erhalten, aber vielleicht kann ja jemand zu folgender Problematik helfen:

Ich muß Ascii-Dateien "auseinander" nehmen, die in jeder Zeile verschiedene Datensätze enthalten und diese Daten dann - am besten in einer DB - ablegen:

Beginnend mit einer Satzartnummer, z.B. 10+... schließen sich eine satzartspezifische Anzahl von Feldern an, die durch ZWEI!!! verschiedene Delimiter "+" und "-" getrennt sind (nach einem Minus kommt eine negative Zahl) getrennt werden.

Explode und andere Stringzerlege-Proceduren reagieren nur auf EINEN Delimiter?!

Wie kann ich solche Strings am besten / perfomantesten zerlegen und die extrahierten Felder speichern ?
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Ascii-Datei analysieren

  Alt 5. Apr 2005, 07:46
Hai hgiel,

ersteinmal : "Herzlich Willkommen in der Delphi-PRAXIS".

So wie ich das sehe reicht es ja nicht das Du mit zwei Delimtern arbeiten kannst. Da der Delimiter ja etwas über die folgende Zahl aussagt (ob positiv oder negativ) musst Du ja auch noch denn Delimiter selbst aus dem String extrahieren.

Hast Du mal einen beispiel String?
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
hgiel

Registriert seit: 4. Apr 2005
61 Beiträge
 
#3

Re: Ascii-Datei analysieren

  Alt 5. Apr 2005, 08:34
null problemo,

10+240305+1020+1+104000100+010406+240305+08040111+ 001+501
60+240305+1021+1+104000100+++3+701+3+++1+2.6+7.8
66+240305+1021+1+104000100++1+1+1+7.8
67+240305+1021+1+104000100++1
70+240305+1021+1+104000100+++1+1
71+1021+3+701+3+++1+2.6+7.8+1
09+180305+1344+40+Sende:B:SK214301.DBZ
09+180305+1344+40+Sende:BEFAULTS.INI
60+180305+1437+1+104000100+++3+701+2+++1+2.6+5.2
60+180305+1437+1+104000100++1+3+701-2+++1+2.6-5.2
66+180305+1439+1+104000100++1+1+1+22.8
67+180305+1439+1+104000100++1

vielen Dank
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Ascii-Datei analysieren

  Alt 5. Apr 2005, 13:16
Hat es irgendeine besondere Beduetung, wenn mehrere "+"-Zeichen zwischen zwei Zahlen stehen, oder ist das unwichtig?

MfG
Binärbaum
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.354 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Ascii-Datei analysieren

  Alt 5. Apr 2005, 13:22
Auf den ersten Blick würde ich einen Varianten Record nehmen und das zeilenweise verarbeiten. Da du verschiedene Delimiter hast, wirst du wohl die Zeilen manuell parsen müssen.
Peter
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#6

Re: Ascii-Datei analysieren

  Alt 5. Apr 2005, 13:34
Zitat von hgiel:
Ich muß Ascii-Dateien "auseinander" nehmen, die in jeder Zeile verschiedene Datensätze enthalten und diese Daten dann - am besten in einer DB - ablegen:

Beginnend mit einer Satzartnummer, z.B. 10+... schließen sich eine satzartspezifische Anzahl von Feldern an, die durch ZWEI!!! verschiedene Delimiter "+" und "-" getrennt sind (nach einem Minus kommt eine negative Zahl) getrennt werden.

Explode und andere Stringzerlege-Proceduren reagieren nur auf EINEN Delimiter?!
Wer denkt sich denn sowas aus?
Das Minuszeichen gehört ja eigenlich zu den Nutzdaten und wird gleichzeitig als Delimiter missbraucht.
Ich würde jede Zeile nach dem "-" duchsuchen und dann vor dem "-" ein "+" einfügen. (mit Insert())
Dann mit Explore oder Co. zerlegen.
Andreas
  Mit Zitat antworten Zitat
hgiel

Registriert seit: 4. Apr 2005
61 Beiträge
 
#7

Re: Ascii-Datei analysieren

  Alt 5. Apr 2005, 13:45
Vielen Dank,

werde deinen Tip mit dem INSERT mal testen!Ist EDXPORE eine performante Lösung oder gibt es noch etwas schnellers - besonders da ich die Datenfelder dann weiterverarbeiten bzw. in einer DB und/oder einem dynamischen Array ablegen will?

Gibt es auch eine Tip für die anschließende Ablage in eine DB (Habe nur DELPHI3 Professional), bzw. in ein dynamisches Array?

PS für Binärbaum: ++ bedeutet Feldinhalt "leer"
  Mit Zitat antworten Zitat
Antwort Antwort


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 00: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