Einzelnen Beitrag anzeigen

luke2

Registriert seit: 17. Jun 2009
117 Beiträge
 
#4

Re: Delphi 2007 - UpperCase(), LowerCase() Implementierung

  Alt 6. Aug 2009, 23:04
@Satty: Danke, das sieht schon ganz gut aus, nur leider kann ich davon nichts ändern, weil ich von Assembler keine Ahnung habe.
Diese ganzen FastCode Sachen sind auch etwas langsamer (~500ms)
Getestet habe ich das übrigens so:
Delphi-Quellcode:
var a:cardinal;i:integer;s:string;
begin
a:=gettickcount;
for i := 1 to 100000000 do s:=uppercase('hallo');
showmessage(inttostr(gettickcount-a));
end;
(Ich weiss, GetTickCount() ist sehr ungenau, aber hier sollte es doch reichen?)

Also Eigentlich suche ich nur eine Funktion, die genauso oder schneller ist und so arbeitet: procedure UpperCase(var S: string);
@himitsu
Danke, ich habe es jetzt mal so gemacht:
Delphi-Quellcode:
procedure FastUpperCase(var S: String); //inline;
var
  C: ^Char;
  I,j: Integer;
begin
  C := Addr(S[1]); j:=sizeof(char);
  for I := 0 to Length(S) - 1 do
  begin
    if (C^ >= 'a') and (C^ <= 'z') then C^ := UpCase(C^);
    C := Ptr(Integer(C) + j);
  end;
end;
Weit unter 2 Sekunden Damit kann ich leben.
  Mit Zitat antworten Zitat