Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: andrei_it от 24 Марта 2020, 10:55:48

Название: Строку в ASCII
Отправлено: andrei_it от 24 Марта 2020, 10:55:48
     Подскажите как строку перевести в ASCII

например текст : Тест

Название: Re: Строку в ASCII
Отправлено: Simple-Scada от 24 Марта 2020, 11:26:55
Здравствуйте.

Чтобы получить код символа нужно использовать функцию Ord. Если нужны коды для ASCII в русской кодировке (как в этой таблице (https://www.celitel.info/klad/tabsim.htm)), то начальная строка должна иметь тип AnsiString, например:
Код: (delphi)
var
  i: Integer;
  aStr: AnsiString;
  aResult: string;
begin
  aStr := 'Тест';
  aResult := '';
  for i := 1 to Length(aStr) do
    aResult := aResult + IntToStr(Ord(aStr[i]));
end.
После выполнения этого кода в переменной aResult будет такая строка: '210 229 241 242' (без пробелов).

Если переводить в коды Unicode-строку (тип string), вот так:
Код: (delphi)
var
  i: Integer;
  aStr: string;
  aResult: string;
begin
  aStr := 'Тест';
  aResult := '';
  for i := 1 to Length(aStr) do
    aResult := aResult + IntToStr(Ord(aStr[i]));
end.
, то в результате мы получим Unicode коды и в aResult будет такая строка: '1058 1077 1089 1090' (без пробелов).
Название: Re: Строку в ASCII
Отправлено: andrei_it от 24 Марта 2020, 11:34:46
Благодарю!