Wenn Du
reguläre Ausdrücke 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...)