Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для ErikPshat

Пользователь


Сообщения: 54
Благодарности: 11

Профиль | Отправить PM | Цитировать


Цитата Iska:
Так здесь проблема с программистами, которые в XXI веке продолжают считать, что в мире не существует никакого иного языка, кроме английского. »
Ага, тут в продолжение разговора, я всё-таки решил использовать эту злополучную утилиту, которая не понимает в путях не только символы кириллицы, но и другие нестандартные символы, отличные от букв и цифр ANSI алфавита: [A-z0-9]. Вообщем мне удалось соорудить проверку на символы кириллицы и оно прекрасно работает.
IsAnsi
Наверху кода создаю такую функцию:
Код: Выделить весь код
function IsAnsi(S: String): Boolean; var S1, S2: string;
begin S1 := AnsiUppercase(S); S2 := Uppercase(S); if CompareStr(S1, S2) = 0 then
  begin S1 := Lowercase(S); S2 := AnsiLowercase(S); if CompareStr(S1, S2) = 0 then
    Result := True;
  end;
end;
А потом, там где я хочу произвести проверку, вставляю код проверки символов в пути к папке программы и при обнаружении вывожу предупреждение с завершением работы:
Код: Выделить весь код
if not (IsAnsi(ExpandConstant('{src}'))) then
  begin MsgBox(ExpandConstant('{cm:CirillicPATH}')+#10#10+ExpandConstant('{src}'),mbError,MB_OK);
  Exit;
end;
Но теперь я хочу дополнить проверку и на нестандартные символы, типа !, "@, #, $, %, ^, &, *,...
В инете нашёл такую интересную процедуру определения символов по их номерам и даже по диапазонам номеров в десятичном виде:
Код: Выделить весь код
procedure justNumbers(Sender: TObject; var Key: Char);
begin
  if not ((Key = #8) or (Key = #43) or ((Key >= #48) and (Key <= #57))) then
  begin
    Key := #0;
  end;
end;
Но вот что-то никак ума не приложу, как бы мне теперь объединить эти две конструкции, чтобы и символы кириллицы анализировала, и нестандартные символы определяла?
Либо отказаться от первой функции и сделать определение символов по их номерам?
Чую собака неглубоко зарыта, но что-то у меня пока не получается никак.

Последний раз редактировалось ErikPshat, 29-04-2019 в 08:49.


Отправлено: 19:43, 27-04-2019 | #306