du könntest das ganze mit PosEx machen, damit kannst du die start-such-position angeben.
Ungefähr so sollte das ganze dann aussehen (davon ausgegangen das dein Stream in "Suchstring" steht
Delphi-Quellcode:
var LStartpos: Integer;
LZahlen: String;
begin
LZahlen := '0123456789';
LStartpos := 1;
while (LStartpos < length(Suchstring)) and (LStartpos > 0) do
begin
LStartpos := PosEx('.', Suchstring, LStartpos);
if LStartpos > 0 then //wenn punkt gefunden wurde
begin
//sicherstellen das nicht ".pdf" etc gefunden wurde sonder eine zahl folgt
if pos(Suchstring[LStartpos + 1], LZahlen) > 0 then
begin
//punkt entfernen
Suchstring := copy(Suchstring, 1, LStartpos - 1) + copy(Suchstring, LStartpos +1, length(Suchstring));
//jetzt noch letzte zahl finden um leerzeichen einzufügen
while pos(Suchstring[LStartpos], LZahlen) > 0 do inc(LStartpos);
//jetzt sollte LStartpos hinter der letzten zahl sein
Suchstring := copy(Suchstring, 1, LStartpos - 1) + ' ' + copy(Suchstring, LStartpos, length(Suchstring));
end else inc(LStartpos);
end;
end;
Source ist ungetestet und soll nur als gedankenanstoß dienen
[Edit]Inzwischen getestet und funzt (Source verbessert)[/Edit]