![]() |
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 |
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 :? |
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 |
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. |
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.
|
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:
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...)
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; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz