// === verarbeitung ==============================================
procedure TForm1.Button2Click(Sender: TObject);
var
i : Integer;
sl : TStringList;
sAnrede :
String;
sTitel :
String;
sNachname :
String;
sVorname :
String;
sABCD :
String;
sTermin :
String;
iPos : Integer;
sTemp :
String;
begin
sl := TStringList.Create;
// Was mag hier wohl in sl sein?
// Ziemlich genau nichts.
// In meinem Beispiel waren die Daten per .Add in die Stringliste eingefügt worden.
// Hier müsstest Du sie daher aus dem Memo übernehmen.
// statt
// Memo1.Lines.AddStrings(sl);
// eher
sl.AddStrings(Memo1.Lines);
for i := 0
to sl.Count - 1
do begin
sTemp := Trim(sl[i]);
// Falls mal jemand 'ne Leerzeile einschmuggelt:
if sTemp = '
'
then continue;
// WriteLn('Quelle: ' + sl[i]); // Ausgabe nur zum Testen
// Zuerst den Termin holen:
iPos := Pos('
Terminplan',sTemp);
sTermin := Copy(sl[i],iPos,Length(sTemp));
// Den Termin entfernen.
sTemp := Copy(sTemp,1,iPos - 3);
// Position von " mit " ermitteln
iPos := Pos('
mit ',sTemp);
// und alles hinter " mit " holen.
sABCD := Copy(sTemp,iPos + 5,Length(sTemp));
// Alles, einschließlich " mit " entfernen.
sTemp := Copy(sTemp,1,iPos - 1);
// Gibt es ein Komma, dann gibt es auch einen Vornamen.
iPos := Pos('
, ',sTemp);
sVorname := '
';
if iPos > 0
then begin
sVorname := Trim(Copy(sTemp,iPos + 1,Length(sTemp)));
sTemp := Copy(sTemp,1,iPos - 1);
end;
// Erstes Leerzeichen suchen, davor steht die Anrede.
iPos := Pos('
',sTemp);
sAnrede := Copy(sTemp,1,iPos - 1);
// Anrede entfernen.
sTemp := Copy(sTemp,iPos + 1,Length(sTemp));
// Haben wir 'nen Punkt, so haben wir auch 'nen Titel:
sTitel := '
';
iPos := Pos('
. ',sTemp);
while iPos > 0
do begin
sTitel := Format('
%s %s',[sTitel,Copy(sTemp,1,iPos)]);
sTemp := Trim(Copy(sTemp,iPos + 1,Length(sTemp)));
iPos := Pos('
. ',sTemp);
end;
sTitel := Trim(sTitel);
// Der verbliebene Rest entspricht dem Nachnamen:
sNachname := sTemp;
sl[i] := Format('
%s;%s;%s;%s;mit %s: %s', [sAnrede, sTitel, sNachname, sVorname, sABCD, sTermin]);
// WriteLn('CSV : ' + sl[i]); // Ausgabe nur zum Testen
end;
sl.SaveToFile('
c:\users\Julia\documents\stringlist.txt');
sl.Free;
end;