Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#14

AW: String gleich aber doch nicht gleich...

  Alt 9. Sep 2012, 20:41
Ja gut, es läuft auf (fast) das selbe hinaus.

Bei > '' und <> '' optimiert der Compiler das schon, dass automatisch auf die String-Länge zurückgegriffen wird:
Code:
cmp dword ptr [ebp-$04],$00
(An Pointer(String) - 4 liegt der Längenzähler, 4 Bytes)
Wobei ein Vergleich auf 0, wie er bei <> '' geschieht ("jnz" in ASM), meine ich, schneller ist, als ein Range-Vergleich über "jnbe" in dem Fall...
Also dann gibt es die definition nicht "was richtig und was falsch".
Zumindest bei der prüfung >, <> , Length.

SizeOf bleibt dann außen vor soviel habe ich verstanden und auch abgeändert.

Überlge nun ob das auch nicht richtig ist.

Delphi-Quellcode:
function GetWndText(WinHandle: HWND): string;
var
  sBuf: array[0..256] of char;
  lRet: Integer;

begin

  Result := '';
  lRet := GetWindowText(WinHandle, sBuf, sizeof(sBuf) - 1);
  if lRet <= 0 then
      exit;

  Result := sBuf;
end;
Letztendlich ist die rückgabe auch ein string
sizeof(sBuf) - 1);

Da fehlt wohl noch was Knowhow

gruss

Geändert von EWeiss ( 9. Sep 2012 um 20:44 Uhr)
  Mit Zitat antworten Zitat