function UTF8CharacterLength(p: PChar): integer; begin if p <> nil then begin if ord(p^) < %11000000 then // 00000000-01111111 begin // regular single byte character (#0 is a character, this is pascal ;) Result := 1; end else if ((ord(p^) and %11100000) = %11000000) then // 11000010-11011111 begin // could be 2 byte character if (ord(p[1]) and %11000000) = %10000000 then Result := 2 else Result := 1; end else if ((ord(p^) and %11110000) = %11100000) then // 11100000-11101111 begin
Ich kenne % immer als modulo (Rest einer Division). Aber das ist dann ein binärer operator. In diesem Fall wird % unär verwendet, ich glaube theo liegt mit seiner Vermutung richtig.
MFG
Komoluna
Programmer: A device to convert coffee into software.
Komoluna hat geschrieben:Ich kenne % immer als modulo (Rest einer Division). Aber das ist dann ein binärer operator. In diesem Fall wird % unär verwendet, ich glaube theo liegt mit seiner Vermutung richtig.
Das ist doch keine Vermutung, sondern ein Fakt, dass in Pascal mit % binäre Zahlen dargestellt werden.
Eine binäre Zahl wird in der Programmiersprache Pascal mit dem Prozentzeichen (%) als Vorzeichen dargestellt.