Zitat von
SebE:
Ich würd' mir gern mal die Length-Funktion anschauen, um näheres zu erfahren, aber ich finde sie nicht in der System.pas
Diese unterliegt auch der "Copmiler-Magic" und hat verschiedene Implementationen mit unterschiedlichen Namen. Die gängigste ist folgende (Copyright © Borland; System.pas):
Delphi-Quellcode:
function _LStrLen(
const s: AnsiString): Longint;
{$IFDEF PUREPASCAL}
begin
Result := 0;
if Pointer(s) <>
nil then
Result := PStrRec(Integer(s) - sizeof(StrRec)).length;
end;
{$ELSE}
asm
{ -> EAX str }
TEST EAX,EAX
JE @@done
MOV EAX,[EAX-skew].StrRec.length;
@@done:
end;
{$ENDIF}
...
...