Hallo zusammen,
ich habe folgendes Problem:
ich möchte aus einem langen String alle alleinstehenden #$A entfernen.
Hierzu habe ich mir folgende Prozedur gebastelt:
Delphi-Quellcode:
procedure Delete10(var Str : string);
var
MyStr, TempStr : string;
iPos : integer;
begin
MyStr := '';
TempStr := str;
iPos := Pos(#$A, TempStr);
while iPos > 0 do
begin
if iPos > 1 then
begin
if TempStr[iPos - 1] <> #$D then
begin
MyStr := MyStr + Copy(TempStr, 1, iPos - 1);
end
else
MyStr := MyStr + Copy(TempStr, 1, iPos);
TempStr := Copy(TempStr, iPos + 1 , Length(TempStr) - (iPos + 1));
end
else
begin
MyStr := MyStr + Copy(TempStr, 2, Length(TempStr));
TempStr := Copy(TempStr, 2 , Length(TempStr) - (2));
end;
iPos := Pos(#$A, TempStr);
end;
Str := MyStr+TempStr;
end;
Jetzt habe ich festgestellt, dass die Prozedur bei längeren Strings
(> 100.000 Zeichen) einfach irgendwo abbricht, und so einen nicht vollständigen
String zurückliefert. Es wird zwar für gleiche Strings immer gleich abgeschnitten,
aber WARUM ÜBERHAUPT??? Wo steckt mein der Fehler????
Ich danke Euch für Eure Hilfe!
Grüße
Robert