Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

Re: StrLen / SizeOf mag Chr(0) nicht?

  Alt 3. Aug 2008, 12:22
Die null ist nunmal der Trenner von den netten WindowsArrays (kennt man z.B. vom OpenDialog (WinAPI), nur das da intern in TOpenialog ein "|" verwendet wird, da die viele Stringoperationen mit der #0 nicht klarkommen)

Delphi-Quellcode:
// Result = string/array-length exclusive terminating #0#0

Function StrLen0Array(P: PChar): Integer;
  Var i: Integer;

  Begin
    Result := 0;
    If P = nil Then Exit;
    Repeat
      i := StrLen(P);
      Inc(Result, i + 1);
      Inc(P, i + 1);
    Until i = 0;
    Dec(Result, 2);
  End;
ach ja, es darf nur ein Array übergeben werden, welches mit #0#0 endet ... sonst kommt es schnell mal zu 'ner Exception (Zugriffsverletzung)
$2B or not $2B
  Mit Zitat antworten Zitat