Einzelnen Beitrag anzeigen

Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#3

Re: Datei einlesen: Was eignet sich in diesem Fall am besten

  Alt 7. Dez 2006, 12:51
Hi,

Zitat von mkinzler:
Es gibt einige XML-parser für Delphi
Ich glaube nicht dass das gültiges XML ist. Da fehlen die schließenden Tags und ob man ein Attribut ohne Wert (Ende) verwenden darf... Deswegen wäre ein XML-Parser vielleicht nicht die richtige Wahl.

Da du hier ein komplett unbekanntes Format einlesen willst, würde ich dir dazu raten es mittels einem FileStream (und damit ein wenig per hand) zu machen.
Lies einfach die Datei in kleinen Stücken in einen Puffer (zur idealen Puffgröße findest du bestimmt einige Meinungen in der DP, ist eher Erfahrungssache und eine Abschätzung als immer konst.).
Einen solchen Puffer kannst du beliebig interpretieren, in deinem Fall z.B als einen String (oder halt ein Array von Char). Jedenfalls kannst du leicht den Inhalt des Puffers anhand des gesuchten Zeichens trennen. Du kopierst dazu einfach den Teilstring zwischen < und >. Dazu kannst du natürlich einerseits auf eine while-Schleife zurück greifen, aber auch die Funktion Pos oder halt alle bekannten String-Matching-Algorithmen sollten hier weiter helfen (auch hier findest du sicher viel in der DP, z.B. Hier im Forum suchenexplode).

Hast du die Strings, solltest du dann in einer anderen Routine das Interpretieren dieser Strings übernehmen. Dazu extrahierst und konvertierst du einfach die Werte, so wie du es brauchst.

Um hier flexibel zu bleiben, solltest du die Interpretation dieser Strings in einer Basisklasse abstrakt erstellen. Innerhalb der Basisklasse kannst du so einfach auf die Methode zurückgreifen, eine abgeleitet Klasse muss sie aber erst implementieren!
Somit hast du dann eine Basisklasse, die eine Datei einliest und in Token zerlegt, wie diese Token ausgewertet werden ist aber davon unabhängig (kann von jedem Nachfolger individuell implementiert werden).

Gruß Der Unwissende
  Mit Zitat antworten Zitat