Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Textdatei einlesen und in anderer form ausgeben (https://www.delphipraxis.net/13282-textdatei-einlesen-und-anderer-form-ausgeben.html)

jority 15. Dez 2003 14:38


Textdatei einlesen und in anderer form ausgeben
 
hallo,
ich habe eine Textdatei die so aussieht:

X4C
Herbert Soundso
Muster STR. 7 25436 Musterhausen
WVWZZZ1JZ1B148235 TšV-TERMIN Jan 04 KKK-MU 250
TYP/MODELL 1J10E4 LETZTER BESUCH Jan 01 ERSTZULASSUNG 30.01.01
Olaf-Siegfried Muster
MusterWEG 49 25436 Musterhausen
WAUZZZ8DZSA030862 TšV-TERMIN Jan 04 KKK-MA 250
TYP/MODELL 8D2054 LETZTER BESUCH Jan 03 ERSTZULASSUNG 18.01.95

Das Problem ist das diese in Excel soll und das da wirres zeug gibt.

Es wäre am besten wenn ich diese Datei umstruktorieren würde.
Sie sollte dann so aussehen:

Herbert Soundso ; Muster Str. 7 ; 25436 Musterhausen ;
Olaf-Siegfried Muster ; Musterweg 49 ; 25436 Musterhausen;
Name ; Strasse ; PLZ Ort ;
usw.

kann mir dabei jemand helfen?

gruß Jority

Uncle Cracker 15. Dez 2003 14:52

Re: Textdatei einlesen und in anderer form ausgeben
 
Du könntest Excel im Hintergrund öffnen und über OLE-Automation steuern.

Jedoch hat das den Nachteil, dass Excel installiert sein muss :?

jority 15. Dez 2003 14:58

Re: Textdatei einlesen und in anderer form ausgeben
 
so könnte man es machen nur bin ich mir sicher das diese art wie oben beschrieben erst der anfang ist.
ich denke mir das es sicher mal so sein soll das quasi ein knopfdruck und dann aber ab dafür.
txt--> word seriendruck

und deshalb möchte ich die datei erstmal "nur" neu aufbauen.

gruß jority

Genius 16. Dez 2003 16:00

Re: Textdatei einlesen und in anderer form ausgeben
 
Hallo,
wenn ich mir deine Daten anschaue, denke ich dass man das ganze schlicht und einfach mit Excel realisieren kann.

Über DATEN >> Text in Spalten >>> feste Breite und anschliessendes Markieren der Spalten , sollte es gehen.

Luckie 16. Dez 2003 16:08

Re: Textdatei einlesen und in anderer form ausgeben
 
Nimm dir zwei Stringlisten. Mit der ersten gehst du zeile für Zeile durch die erste Datei. So wie es aussieht, fängt alle vier Zeilen ein neuer Datensatz an. Jetzt hängst du alle alle vier Zeilen zusammen mit ";" getrennt und jede vierte Zeile fügst du sie der zweiten Stringliste hinzu.

choose 16. Dez 2003 16:20

Re: Textdatei einlesen und in anderer form ausgeben
 
Wenn Du [dp]reguläre Ausdrücke[/dp] verwenden würdest, könnte die Lösung (sofern die erste Zeile entfernt wird) in etwa so aussehen:

Delphi-Quellcode:
with RegExp('(.+?)\n(.+?)\s(\d{5})\s(.*?)\n(.*?\n){2}') do
  if Execute(AString) then
  repeat
    myName:= Match[1];
    myStreet:= Match[2];
    myPostalCode:= Match[3];
    myCity:= Match[4];
    DoSth(myName, myStreet, myPostalCode, myCity);
  until not ExecuteNext;
Der korrekte reguläre Ausdruck kann jedoch nur unter Verwendung der Formatspezifikation ertellt werden (zB setzt obiger die Existenz einer fünfstelligen Postleitzahl unmittelbar vor dem Ortsnamen vorraus, was bei internationalem oder schlecht gepflegtem Datenaufkommen nicht vorrausgesetzt werden kann...)


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:13 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