Difference between revisions of "UTF8 Tools/ru"
From Lazarus wiki
Jump to navigationJump to search (→About) |
|||
Line 8: | Line 8: | ||
__TOC__ | __TOC__ | ||
− | == | + | == О пакете == |
− | + | Этот код позволяет обрабатывать текст Unicode и определять, [является ли] символ Unicode: | |
− | * | + | * символом "letter"(буквой) |
− | * | + | * символом "digit"(число) |
− | * | + | * upper-case (заглавным), lower-case (прописным) символом |
− | * | + | * символом "white space"(пробела) |
− | * | + | * символом "punctuation"(пунктуации, напр. точкой, двоеточием и т.д.) |
− | * | + | * и т.д. |
− | + | Также у него есть класс для чтения/записи Unicode из/в TStream (поток в памяти). | |
= Units = | = Units = |
Revision as of 11:18, 17 January 2019
│ English (en) │ русский (ru) │
ENG: AT THE MOMENT THIS PAGE IS UNDER TRANSLATION.
RUS: В НАСТОЯЩИЙ МОМЕНТ СТРАНИЦА НАХОДИТСЯ В ПРОЦЕССЕ ПЕРЕВОДА.
О пакете
Этот код позволяет обрабатывать текст Unicode и определять, [является ли] символ Unicode:
- символом "letter"(буквой)
- символом "digit"(число)
- upper-case (заглавным), lower-case (прописным) символом
- символом "white space"(пробела)
- символом "punctuation"(пунктуации, напр. точкой, двоеточием и т.д.)
- и т.д.
Также у него есть класс для чтения/записи Unicode из/в TStream (поток в памяти).
Units
Using streams
Unit "charencstreams": load/save data from/to almost any text source:
- ANSI, UTF8, UTF16, UTF32
- big-endian, little-endian
- with/without BOM
Demo:
f := TCharEncStream.Create;
f.LoadFromFile(OpenDialog1.FileName);
Memo1.Text := f.UTF8Text;
f.Free;
Character info
Unit "character": get information about code points using the TCharacter class. Demo:
if TCharacter.IsLetter(s[i]) then
s[i] := TCharacter.toLower(s[i]);
Access UTF-8 by code index
Unit "utf8scanner": access UTF-8 strings by code index, use case statements on UTF-8 strings and more. Demo:
s := TUTF8Scanner.Create(Memo1.Text);
for i := 1 to s.Length do
if TCharacter.IsLetter(s[i]) then
s[i] := TCharacter.toLower(s[i]);
Memo1.Text := s.UTF8String;
s.Free;
Case demo:
s := TUTF8Scanner.Create(Memo1.Text);
s.FindChars := 'öäü';
repeat
case s.FindIndex(s.Next) of
{ö} 0: s.Replace('oe');
{ä} 1: s.Replace('ae');
{ü} 2: s.Replace('ue');
end;
until s.Done;
Memo1.Text := s.UTF8String;
s.Free;