Unit BGRAUTF8

Description

UTF8 related functions

Uses

Overview

Classes, Interfaces, Objects and Records

Name Description
Packed Record TBidiUTF8Info Unicode layout information along with offset for each UTF8 character
Class TFileStreamUTF8 File stream supporting UTF8 filenames
Record TGlyphCursorUtf8 Cursor to go through a UTF8 text glyph by glyph
Record TGlyphUtf8 Information about one glyph in a UTF8 text
Class TStringListUTF8 String list supporting UTF8 filenames

Functions and Procedures

function AddParagraphBidiUTF8(s: string; ARightToLeft: boolean): string;
function AnalyzeBidiUTF8(const sUTF8: string; ARightToLeft: boolean): TBidiUTF8Array; overload;
function AnalyzeBidiUTF8(const sUTF8: string; ABidiMode: TFontBidiMode): TBidiUTF8Array; overload;
function AnalyzeBidiUTF8(const sUTF8: string): TBidiUTF8Array; overload;
function ContainsBidiIsolateOrFormattingUTF8(const sUTF8: string): boolean;
function DeleteFileUTF8(Const FileName : string): boolean;
function FileCreateUTF8(Const FileName : string; Rights: LongWord) : THandle; overload;
function FileCreateUTF8(Const FileName : string) : THandle; overload;
function FileExistsUTF8(Const FileName : string): boolean;
function FileOpenUTF8(Const FileName : string; Mode : Integer) : THandle;
procedure FindCloseUTF8(var F: TSearchrec);
function FindFirstUTF8(const Path: string; Attr: Longint; out Rslt: TSearchRec): Longint;
function FindNextUTF8(var Rslt: TSearchRec): Longint;
function GetBidiClassUTF8(P: PChar): TUnicodeBidiClass;
function GetFirstStrongBidiClassUTF8(const sUTF8: string): TUnicodeBidiClass;
function GetLastStrongBidiClassUTF8(const sUTF8: string): TUnicodeBidiClass;
function GetUTF8DisplayOrder(const ABidi: TBidiUTF8Array): TUnicodeDisplayOrder;
function IsRightToLeftUTF8(const sUTF8: string): boolean;
function IsZeroWidthUTF8(const sUTF8: string): boolean;
function LEReadByte(Stream: TStream): byte;
function LEReadInt64(Stream: TStream): int64;
function LEReadLongint(Stream: TStream): longint;
function LEReadSingle(Stream: TStream): single;
procedure LEWriteByte(Stream: TStream; AValue: Byte);
procedure LEWriteInt64(Stream: TStream; AValue: int64);
procedure LEWriteLongint(Stream: TStream; AValue: LongInt);
procedure LEWriteSingle(Stream: TStream; AValue: single);
procedure LoadStringsFromFileUTF8(List: TStrings; const FileName: string);
procedure SaveStringsToFileUTF8(List: TStrings; const FileName: string);
function SysToUTF8(const s: string): string;
function UnicodeCharToUTF8(u: LongWord): string4;
function UTF16ToUTF8(const S: UnicodeString): AnsiString;
function UTF8CharacterLength(p: PChar): integer;
function UTF8CharStart(UTF8Str: PChar; Len, CharIndex: PtrInt): PChar;
function UTF8CodepointToUnicode(p: PChar; ACodePointLen: integer): LongWord;
function UTF8CompareStr(const S1, S2: string): Integer;
function UTF8CompareText(const S1, S2: string): Integer;
function UTF8EmbedDirection(const sUTF8: string; ARightToLeft: boolean): string;
function UTF8Length(p: PChar; ByteCount: PtrInt): PtrInt; overload;
function UTF8Length(const s: string): PtrInt; overload;
function UTF8Ligature(const sUTF8: string; ARightToLeft: boolean; ALigatureLeft, ALigatureRight: boolean): string;
function UTF8LowerCase(const s: string): string;
function UTF8OverrideDirection(const sUTF8: string; ARightToLeft: boolean): string;
function UTF8ReverseString(const s: string): string;
function UTF8ToSys(const s: string): string;
procedure UTF8ToUnicodeArray(const sUTF8: string; out u: TUnicodeArray; out ofs: TIntegerArray);
function UTF8ToUTF16(const S: AnsiString): UnicodeString;
function UTF8UpperCase(const s: string): string;

Types

string4 = string[4];
TBidiUTF8Array = packed array of TBidiUTF8Info;
TIntegerArray = array of integer;
TUnicodeArray = packed array of LongWord;
TUnicodeBidiInfo = BGRAUnicode.TUnicodeBidiInfo;
TUnicodeDisplayOrder = BGRAUnicode.TUnicodeDisplayOrder;

Constants

UTF8_ARABIC_ALEPH = 'ا';
UTF8_ARABIC_ALEPH_HAMZA_ABOVE = 'أ';
UTF8_ARABIC_ALEPH_HAMZA_BELOW = 'إ';
UTF8_ARABIC_ALEPH_MADDA_ABOVE = 'آ';
UTF8_ARABIC_LAM = 'ل';
UTF8_LINE_SEPARATOR = #$E2#$80#$A8;
UTF8_NEXT_LINE = #$C2#$85;
UTF8_NO_BREAK_SPACE = ' ';
UTF8_PARAGRAPH_SEPARATOR = #$E2#$80#$A9;
UTF8_ZERO_WIDTH_JOINER = '‍';
UTF8_ZERO_WIDTH_NON_JOINER = '‌';

Description

Functions and Procedures

function AddParagraphBidiUTF8(s: string; ARightToLeft: boolean): string;

This item has no description.

function AnalyzeBidiUTF8(const sUTF8: string; ARightToLeft: boolean): TBidiUTF8Array; overload;

This item has no description.

function AnalyzeBidiUTF8(const sUTF8: string; ABidiMode: TFontBidiMode): TBidiUTF8Array; overload;

This item has no description.

function AnalyzeBidiUTF8(const sUTF8: string): TBidiUTF8Array; overload;

This item has no description.

function ContainsBidiIsolateOrFormattingUTF8(const sUTF8: string): boolean;

This item has no description.

function DeleteFileUTF8(Const FileName : string): boolean;

This item has no description.

function FileCreateUTF8(Const FileName : string; Rights: LongWord) : THandle; overload;

This item has no description.

function FileCreateUTF8(Const FileName : string) : THandle; overload;

This item has no description.

function FileExistsUTF8(Const FileName : string): boolean;

This item has no description.

function FileOpenUTF8(Const FileName : string; Mode : Integer) : THandle;

This item has no description.

procedure FindCloseUTF8(var F: TSearchrec);

This item has no description.

function FindFirstUTF8(const Path: string; Attr: Longint; out Rslt: TSearchRec): Longint;

This item has no description.

function FindNextUTF8(var Rslt: TSearchRec): Longint;

This item has no description.

function GetBidiClassUTF8(P: PChar): TUnicodeBidiClass;

This item has no description.

function GetFirstStrongBidiClassUTF8(const sUTF8: string): TUnicodeBidiClass;

This item has no description.

function GetLastStrongBidiClassUTF8(const sUTF8: string): TUnicodeBidiClass;

This item has no description.

function GetUTF8DisplayOrder(const ABidi: TBidiUTF8Array): TUnicodeDisplayOrder;

This item has no description.

function IsRightToLeftUTF8(const sUTF8: string): boolean;

This item has no description.

function IsZeroWidthUTF8(const sUTF8: string): boolean;

This item has no description.

function LEReadByte(Stream: TStream): byte;

This item has no description.

function LEReadInt64(Stream: TStream): int64;

little endian stream functions

function LEReadLongint(Stream: TStream): longint;

This item has no description.

function LEReadSingle(Stream: TStream): single;

This item has no description.

procedure LEWriteByte(Stream: TStream; AValue: Byte);

This item has no description.

procedure LEWriteInt64(Stream: TStream; AValue: int64);

This item has no description.

procedure LEWriteLongint(Stream: TStream; AValue: LongInt);

This item has no description.

procedure LEWriteSingle(Stream: TStream; AValue: single);

This item has no description.

procedure LoadStringsFromFileUTF8(List: TStrings; const FileName: string);

This item has no description.

procedure SaveStringsToFileUTF8(List: TStrings; const FileName: string);

This item has no description.

function SysToUTF8(const s: string): string;

This item has no description.

function UnicodeCharToUTF8(u: LongWord): string4;

This item has no description.

function UTF16ToUTF8(const S: UnicodeString): AnsiString;

This item has no description.

function UTF8CharacterLength(p: PChar): integer;

This item has no description.

function UTF8CharStart(UTF8Str: PChar; Len, CharIndex: PtrInt): PChar;

This item has no description.

function UTF8CodepointToUnicode(p: PChar; ACodePointLen: integer): LongWord;

This item has no description.

function UTF8CompareStr(const S1, S2: string): Integer;

This item has no description.

function UTF8CompareText(const S1, S2: string): Integer;

This item has no description.

function UTF8EmbedDirection(const sUTF8: string; ARightToLeft: boolean): string;

This item has no description.

function UTF8Length(p: PChar; ByteCount: PtrInt): PtrInt; overload;

This item has no description.

function UTF8Length(const s: string): PtrInt; overload;

This item has no description.

function UTF8Ligature(const sUTF8: string; ARightToLeft: boolean; ALigatureLeft, ALigatureRight: boolean): string;

This item has no description.

function UTF8LowerCase(const s: string): string;

This item has no description.

function UTF8OverrideDirection(const sUTF8: string; ARightToLeft: boolean): string;

This item has no description.

function UTF8ReverseString(const s: string): string;

This item has no description.

function UTF8ToSys(const s: string): string;

This item has no description.

procedure UTF8ToUnicodeArray(const sUTF8: string; out u: TUnicodeArray; out ofs: TIntegerArray);

This item has no description.

function UTF8ToUTF16(const S: AnsiString): UnicodeString;

This item has no description.

function UTF8UpperCase(const s: string): string;

This item has no description.

Types

string4 = string[4];

This item has no description.

TBidiUTF8Array = packed array of TBidiUTF8Info;

Array of unicode layout for UTF8 text

TIntegerArray = array of integer;

This item has no description.

TUnicodeArray = packed array of LongWord;

This item has no description.

TUnicodeBidiInfo = BGRAUnicode.TUnicodeBidiInfo;

Bidirectional layout information for one Unicode character

TUnicodeDisplayOrder = BGRAUnicode.TUnicodeDisplayOrder;

This item has no description.

Constants

UTF8_ARABIC_ALEPH = 'ا';

This item has no description.

UTF8_ARABIC_ALEPH_HAMZA_ABOVE = 'أ';

This item has no description.

UTF8_ARABIC_ALEPH_HAMZA_BELOW = 'إ';

This item has no description.

UTF8_ARABIC_ALEPH_MADDA_ABOVE = 'آ';

This item has no description.

UTF8_ARABIC_LAM = 'ل';

This item has no description.

UTF8_LINE_SEPARATOR = #$E2#$80#$A8;

This item has no description.

UTF8_NEXT_LINE = #$C2#$85;

equivalent of </p>

UTF8_NO_BREAK_SPACE = ' ';

This item has no description.

UTF8_PARAGRAPH_SEPARATOR = #$E2#$80#$A9;

equivalent of <br>

UTF8_ZERO_WIDTH_JOINER = '‍';

This item has no description.

UTF8_ZERO_WIDTH_NON_JOINER = '‌';

This item has no description.