![]() |
#7 |
Участник
|
Цитата:
Сообщение от tyrex
Win-строка АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ представляет собой в DOS-кодировке символы псевдографики (а также возможно букву "и").
Поэтому приходим к такому алгоритму: 1. Считываем строку, предполагая что она представлена в виде DOS-кодировки. 2. Преобразуем ее в UpperCase чтобы ограничить диапазон симвопов для проверки. 2. Перебираем символы этой строки. 3. Если код символа оказывается >=179 (символ начала последовательности псевдографики), то входная строка представлена в виде Win-кодировки. <div class='CALtop'>C/AL</div><div class='CAL'>IsDosEncoding(InStr: Text): Boolean BEGIN FOR i:=1 TO LENGTH(InStr) DO IF (InStr[i] in 176..223) THEN EXIT(TRUE); EXIT(FALSE); END;</div> ![]() Цитата:
Сообщение от SVG
А если у нас там запятая, тире, точка, цифра, etc?
NB. по-умолчанию (если нет русских букв) строка будет считаться ДОСовской (если True с False, разумеется, местами поменять) |
|