Difference between revisions of "UTF8 Tools/ru"

From Lazarus wiki
Jump to navigationJump to search
(Created page with "{{LanguageBar|UTF8 Tools}} == About == This code allows to process Unicode text and determine for unicode chars: * if char "letter" * if char "digit" * if char upper-case,...")
 
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
{{LanguageBar|UTF8 Tools}}
 
{{LanguageBar|UTF8 Tools}}
  
== About ==
+
__TOC__
  
This code allows to process Unicode text and determine for unicode chars:
+
== О пакете ==
  
* if char "letter"
+
Этот код позволяет обрабатывать текст Unicode и определять, [является ли] символ Unicode:
* if char "digit"
 
* if char upper-case, lower-case
 
* if char "white space"
 
* if char "punctuation"
 
* etc.
 
  
Also it has class to read/write Unicode from/to TStream.
+
* символом "letter"(буквой)
 +
* символом "digit"(число)
 +
* upper-case (заглавным), lower-case (прописным) символом
 +
* символом "white space"(пробела)
 +
* символом "punctuation"(пунктуации, напр. точкой, двоеточием и т.д.)
 +
* и т.д.
  
= Units =
+
Также у него есть класс для чтения/записи Unicode из/в TStream (поток в памяти).
== Using streams ==
 
  
Unit "charencstreams": load/save data from/to almost any text source:
+
= Модули =
 +
== Использование потоков ==
 +
 
 +
Модуль "charencstreams": загружает/сохраняет данные практически из/в любого текстового источника:
  
 
* ANSI, UTF8, UTF16, UTF32
 
* ANSI, UTF8, UTF16, UTF32
 
* big-endian, little-endian
 
* big-endian, little-endian
* with/without BOM
+
* с/без BOM
 
      
 
      
Demo:
+
Демо:
  
 
<syntaxhighlight lang="pascal">
 
<syntaxhighlight lang="pascal">
Line 32: Line 34:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
== Character info ==
+
== Информация о символе ==
  
 
Unit "character": get information about code points using the TCharacter class. Demo:
 
Unit "character": get information about code points using the TCharacter class. Demo:
 +
Модуль "character": получает информацию о кодовых точках, используя класс TCharacter. Демо:
  
 
<syntaxhighlight lang="pascal">
 
<syntaxhighlight lang="pascal">
Line 42: Line 45:
  
  
== Access UTF-8 by code index ==
+
== Доступ к UTF-8 по индексу кода ==
  
Unit "utf8scanner": access UTF-8 strings by code index, use case statements on UTF-8 strings and more. Demo:
+
Модуль "utf8scanner": [осуществляет] доступ к строкам UTF-8 по индексу кода, использует операторы case в строках UTF-8 и многое другое. Демо:
  
 
<syntaxhighlight lang="pascal">
 
<syntaxhighlight lang="pascal">
Line 55: Line 58:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Case demo:
+
Демо с оператором case:
  
 
<syntaxhighlight lang="pascal">
 
<syntaxhighlight lang="pascal">
Line 71: Line 74:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
= Download =
+
= Загрузка =
  
 
[http://www.theo.ch/lazarus/utf8tools.zip Download utf8tools.zip]
 
[http://www.theo.ch/lazarus/utf8tools.zip Download utf8tools.zip]
  
 
[[Category:Unicode]]
 
[[Category:Unicode]]

Latest revision as of 11:25, 17 January 2019

English (en) русский (ru)

О пакете

Этот код позволяет обрабатывать текст Unicode и определять, [является ли] символ Unicode:

  • символом "letter"(буквой)
  • символом "digit"(число)
  • upper-case (заглавным), lower-case (прописным) символом
  • символом "white space"(пробела)
  • символом "punctuation"(пунктуации, напр. точкой, двоеточием и т.д.)
  • и т.д.

Также у него есть класс для чтения/записи Unicode из/в TStream (поток в памяти).

Модули

Использование потоков

Модуль "charencstreams": загружает/сохраняет данные практически из/в любого текстового источника:

  • ANSI, UTF8, UTF16, UTF32
  • big-endian, little-endian
  • с/без BOM

Демо:

 f := TCharEncStream.Create;
 f.LoadFromFile(OpenDialog1.FileName);
 Memo1.Text := f.UTF8Text;  
 f.Free;

Информация о символе

Unit "character": get information about code points using the TCharacter class. Demo: Модуль "character": получает информацию о кодовых точках, используя класс TCharacter. Демо:

 if TCharacter.IsLetter(s[i]) then
    s[i] := TCharacter.toLower(s[i]);


Доступ к UTF-8 по индексу кода

Модуль "utf8scanner": [осуществляет] доступ к строкам UTF-8 по индексу кода, использует операторы case в строках UTF-8 и многое другое. Демо:

 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:

  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;

Загрузка

Download utf8tools.zip