Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.199 Beiträge
 
Delphi 12 Athens
 
#5

AW: s:string, s[i] <> string[1] ?!

  Alt 4. Jan 2011, 16:25
String[...] ist ein Delphi-Referenz durchsuchenShortString und hat absolut nichts mit dem Delphi-Referenz durchsuchenString (Delphi-Referenz durchsuchenAnsiString, Delphi-Referenz durchsuchenWideString oder Delphi-Referenz durchsuchenUnicodeString) zu tun.

Ein ShortString ist nunmal nur ANSI und daran hat sich selbst in D2009+ nicht geändert.

PS: Einen String zu nehmen, wo doch eh nur ein Char benötigt wurde, war eh nicht das Wahre.



Delphi-Quellcode:
procedure TCustomxyz.FToggleStrCase(var S : String);
var
  i : Integer;
  a, b : String;
begin
  for i := 1 to Length(S) do
  begin
    b := S[i];
    a := AnsiUpperCase(S[i])[1];
    if a = b then
      S[i] := AnsiLowerCase(b)[1]
    else
      S[i] := a;
  end;
end;
wobei es so wesentlich optimaler arbeiten würde
Delphi-Quellcode:
procedure TCustomxyz.FToggleStrCase(var S : String);
var
  i : Integer;
  U, L : Char;
begin
  U := AnsiUpperCase(S);
  L := AnsiLowerCase(S);
  for i := 1 to Length(S) do
    if S[i] = U[i] then
      S[i] := L[i]
    else
      S[i] := U[i];
end;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 4. Jan 2011 um 16:35 Uhr)
  Mit Zitat antworten Zitat