Einzelnen Beitrag anzeigen

SirRobert

Registriert seit: 24. Aug 2006
Ort: Düsseldorf
18 Beiträge
 
Delphi 6 Enterprise
 
#1

String-Bearbeitung! Ich finde den Fehler nicht!

  Alt 27. Aug 2006, 16:35
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
  Mit Zitat antworten Zitat