Sign in Join
Wiki copytemporary

UTF8 Tools/ru: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: UTF8 Tools/ru

OldNewLine
1+## О пакете
2+
3+Этот код позволяет обрабатывать текст Unicode и определять, \[является ли\] символ Unicode:
4+
5+- символом "letter"(буквой)
6+- символом "digit"(число)
7+- upper-case (заглавным), lower-case (прописным) символом
8+- символом "white space"(пробела)
9+- символом "punctuation"(пунктуации, напр. точкой, двоеточием и т.д.)
10+- и т.д.
11+
12+Также у него есть класс для чтения/записи Unicode из/в TStream (поток в памяти).
13+
14+# Модули
15+
16+## Использование потоков
17+
18+Модуль "charencstreams": загружает/сохраняет данные практически из/в любого текстового источника:
19+
20+- ANSI, UTF8, UTF16, UTF32
21+- big-endian, little-endian
22+- с/без BOM
23+
24+Демо:
25+
26+``` pascal
27+ f := TCharEncStream.Create;
28+ f.LoadFromFile(OpenDialog1.FileName);
29+ Memo1.Text := f.UTF8Text;
30+ f.Free;
31+```
32+
33+## Информация о символе
34+
35+Unit "character": get information about code points using the TCharacter class. Demo: Модуль "character": получает информацию о кодовых точках, используя класс TCharacter. Демо:
36+
37+``` pascal
38+ if TCharacter.IsLetter(s[i]) then
39+ s[i] := TCharacter.toLower(s[i]);
40+```
41+
42+## Доступ к UTF-8 по индексу кода
43+
44+Модуль "utf8scanner": \[осуществляет\] доступ к строкам UTF-8 по индексу кода, использует операторы case в строках UTF-8 и многое другое. Демо:
45+
46+``` pascal
47+ s := TUTF8Scanner.Create(Memo1.Text);
48+ for i := 1 to s.Length do
49+ if TCharacter.IsLetter(s[i]) then
50+ s[i] := TCharacter.toLower(s[i]);
51+ Memo1.Text := s.UTF8String;
52+ s.Free;
53+```
54+
55+Демо с оператором case:
56+
57+``` pascal
58+ s := TUTF8Scanner.Create(Memo1.Text);
59+ s.FindChars := 'öäü';
60+ repeat
61+ case s.FindIndex(s.Next) of
62+ {ö} 0: s.Replace('oe');
63+ {ä} 1: s.Replace('ae');
64+ {ü} 2: s.Replace('ue');
65+ end;
66+ until s.Done;
67+ Memo1.Text := s.UTF8String;
68+ s.Free;
69+```
70+
71+# Загрузка
72+
73+[Download utf8tools.zip](http://www.theo.ch/lazarus/utf8tools.zip)
74+
75+---
76+*From the Free Pascal wiki, page "UTF8 Tools/ru", as it stood on 2019-01-17 after a change by Zoltanleo, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
77+Category: Unicode

Back to history