https://github.com/tsnsoft/delphiinputoutpututf8
Ввод и вывод строк Unicode в Delphi 10.4 для Windows 11
https://github.com/tsnsoft/delphiinputoutpututf8
console delphi input output readconsole string unicode utf-8 windows writeconsole
Last synced: 24 days ago
JSON representation
Ввод и вывод строк Unicode в Delphi 10.4 для Windows 11
- Host: GitHub
- URL: https://github.com/tsnsoft/delphiinputoutpututf8
- Owner: tsnsoft
- License: mit
- Created: 2022-07-27T16:15:36.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2022-07-27T16:24:34.000Z (almost 4 years ago)
- Last Synced: 2025-01-17T18:32:20.971Z (over 1 year ago)
- Topics: console, delphi, input, output, readconsole, string, unicode, utf-8, windows, writeconsole
- Language: Pascal
- Homepage:
- Size: 441 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# DelphiInputOutputUTF8
**Ввод и вывод строк Unicode в Delphi 10.4 для Windows 11**

```
program DelphiInputOutputUTF8;
{$APPTYPE CONSOLE}
uses
SysUtils, Windows;
VAR
NumCharsWritten: DWORD;
NumCharsRead: DWORD;
Text: String; // Строка UTF-8
i: integer;
begin
try
SetLength(Text, 255); // Устанавливаем максимальное количество символов для переменной
// Вводим строку в UTF-8 через вызов функции WinAPI ReadConsoleW
ReadConsole(GetStdHandle(STD_INPUT_HANDLE), PChar(Text), Length(Text), NumCharsRead, nil);
SetLength(Text, NumCharsRead - 2); // Убираем с ввода символы новой строки (нажатие на Enter)
// Распечатаем символы на экран
for i := 1 to Length(Text) do begin
Writeln('[', i, '] char: ', Text[i], ', code: ', ord(Text[i]));
end;
// Меняем текст UTF-8 (добавляем в конец)
Text := Text + ' -> Замечательно! Das ist großartig! Wonderful! 精彩的! رائع!';
// Выводим строку в UTF-8 через вызов функции WinAPI WriteConsoleW
WriteConsole(GetStdHandle(STD_OUTPUT_HANDLE), PChar(Text), Length(Text), NumCharsWritten, nil);
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
ReadLn; // Ожидание нажатия на Enter
end.
```