Einzelnen Beitrag anzeigen

Benutzerbild von Opa
Opa

Registriert seit: 12. Jun 2003
107 Beiträge
 
Delphi 7 Enterprise
 
#43

Re: StringReplace und doppelte Zeichen

  Alt 25. Dez 2007, 20:07
Wenn dann ist die Assembler Routine nur minimal schneller.

Als ich das mein (Ding) war nur ein dussliges Abfallprodukt, nach dem Motto schreib mal was rein ins Forum. Konnte ich nicht ahnen das dieses Tun eine solche Reaktion auslöst. Erst hatte ich dachte man macht mich hier nur dumm an.

Lob also allen die sich die Mühe gemacht haben, meinen Gedanken zu optimieren. Und ich habe sogar was gelehrt. SetLength ist mir zwar bekannt gewesen. Das dieser Befehl eine solche Auswirkung hat, was Geschwindigkeit angeht, hatte ich nicht geahnt. Normalerweise mache ich mir darüber auch keine Gedanken mehr. Alles was unterhalb einer Sek. ist, nehme ich kaum zur Kenntnis (früher war das anders, langsamer Rechner).

Ich muss sagen bin positiv überrascht, es wird nicht nur gemäkelt, ist werden auch Verbesserungsvorschläge gemacht. Lob, Lob, Lob all denen usw.
MFG

Ps.: Alter Mann ist immer am langsamten. Aber das so ein Ding nicht in Delphi ist nervt

Noch was zum optimieren Das ist (ein Test) blah , in Klammern muss weg
Code:
function _DeleteTextInKlammer(const S:string;Auf,Zu:Char):string;overload;
var
  I,P : integer;
  OK : boolean;
begin
  SetLength(Result, Length(S));
  P :=1;
  I :=1;
  OK := false;
  repeat
    if S[I] = Auf then
    begin
      OK := false;
      while (S[I] <> Zu) and (I< Length(S)) do
      inc(I);
    end;
    if S[I] =Zu
    then Ok := true
    else begin
           if I <= Length(S) then
           begin
             Result[P] := S[I];
             inc(P);
           end;
         end;
    inc(I);
  until I > Length(S);
  if not OK
  then Result := S
  else SetLength(Result,P-1);
end;
Wenn man nicht weiß was man sucht, findet man auch mit Google nichts.
Bevor ich hier eine Frage stelle, wurde Google vorher befragt. Hinweise dieser Art kann man sich schenken. Im übrigen muss mir niemand antworten.
  Mit Zitat antworten Zitat