Moin Gunnar,
ungetestet, aber so müsste es ganz gut gehen:
Delphi-Quellcode:
var
iSrc : integer;
iDest : integer;
sBuffer : string;
sResult : string;
begin
sBuffer := Memo1.Text;
sResult := StringOfChar(#32,length(sBuffer));
iSrc := 1;
iDest := 1;
while iSrc <= length(sBuffer) do
begin
while (iSrc <= length(sBuffer)) and (sBuffer[iSrc] in [#00..#09,#11..#12,#14..#31]) do inc(iSrc);
while (iSrc <= length(sBuffer)) and not (sBuffer[iSrc] in [#00..#09,#11..#12,#14..#31]) do
begin
sResult[iDest] := sBuffer[iSrc];
inc(iSrc);
inc(iDest);
end;
end;
Memo1.Text := trimright(sResult);
end;
Sieht zwar aufwändig aus, hat aber den Vorteil weniger Stringoperationen, wodurch das Ganze recht schnell sein müsste.
Besonderes Augenmerk ist hierbei auf die Eigenschaft Text von TMemo zu legen, da diese bei jedem Aufruf erst aus den einzelnen Zeilen des Memos zusammengesetzt wird.