Неверов Евгений Викторович
QR-код
Меню сайта
Категории раздела
Программирование на языке Паскаль [26]
В данной категории представлены новые функции, созданные на языке Паскаль, которые могут пригодиться при написании своих программ
Программирование на Delphi [19]
В данной категории представлены полезные подпрограммы, которые могут пригодиться при написании своих программ, а также рассматриваются примеры готовых проектов, создаваемых в среде программирования Delphi
Программирование на HTML [1]
В данной категории рассматриваются примеры готовых проектов, создаваемых на языке HTML
Мои программы [1]
Описание разработанных автором программ.
Online-программы [2]
Прочее [42]
Свободная тематика
Мини-чат
200
Наш опрос
Как Вы думаете, сколько времени люди проживут на Земле?
Всего ответов: 63
Статистика

Онлайн всего: 2
Гостей: 2
Пользователей: 0

Конвертация раскладки клавиатуры

Забывая переключить раскладку на клавиатуре с одного языка на другой (например, с английского языка на русский), мы мягко себя ругаем. Поэтому такие фразы, yfgbcfyyst heccrbvb ,erdfvb yf fyukbqcrjq hfcrkflrt, неохота заново набирать. Вот нижеуказанная функция.

function ConvertRuEn(s: string; En: boolean): string;
const RuEn: array[0..1, 0..32] of string = (('й', 'ц', 'у', 'к', 'е', 'н', 'г',
         'ш', 'щ', 'з', 'ф', 'ы', 'в', 'а', 'п', 'р', 'о', 'л', 'д', 'я', 'ч',
         'с', 'м', 'и', 'т', 'ь', '?', '.', ',', '"', '№', ';', ':'),
        ('q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', 'a', 's', 'd', 'f',
         'g', 'h', 'j', 'k', 'l', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '&', '/',
         '?', '@', '#', '$', '^'));
      RuEn1: array[0..1, 0..13] of string = (('х', 'Х', 'ъ', 'Ъ', 'ж', 'Ж', 'э',
         'Э', 'б', 'Б', 'ю', 'Ю', 'ё', 'Ё'), ('[', '{', ']', '}', ';', ':', '''',
         '"', ',', '<', '.', '>', '`', '~'));
var i: integer;
begin
   if En then
   begin
      for i:=Low(RuEn[0]) to High(RuEn[0]) do
         s:=StringReplaceNew(s, RuEn[0, i], RuEn[1, i], false, false);
      for i:=Low(RuEn1[0]) to High(RuEn1[0]) do
         s:=StringReplaceNew(s, RuEn1[0, i], RuEn1[1, i], true, false);
   end else
   begin
      for i:=High(RuEn1[0]) downto Low(RuEn1[0]) do
         s:=StringReplaceNew(s, RuEn1[1, i], RuEn1[0, i], false, true);
      for i:=High(RuEn[0]) downto Low(RuEn[0]) do
         s:=StringReplaceNew(s, RuEn[1, i], RuEn[0, i], false, false);
   end;
   Result:=s;
end;

где:

  • s – исходная строка;
  • En – конвертировать на русскую (false) или английскую (true) раскладку клавиатуры.

Например,

  • ConvertRuEn('ЩЫЖ ЭЦштвщцы 7Э', true) выведет 'OS: "Windows 7"';
  • ConvertRuEn('{jxtim& Cvfqkbr/', false) выведет 'Хочешь? Смайлик.'.

Примечание. Для полноценной работы данной функции необходимо скопировать вспомогательную функцию "Замена символа или фразы на новое значение":

function StringReplaceNew(s, OldPattern, NewPattern: string; RegOld, RegNew: boolean): string;
Категория: Программирование на языке Паскаль | Добавил: newerow1989 (12.03.2016)
Просмотров: 745 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email:
Код *:
Вход на сайт
Поиск
Друзья сайта
Заработок в Интернете
Для начала необходим Электронный PAYEER® кошелек!
Copyright MyCorp © 2025
Версия для мобильных устройств. Яндекс.Метрика Анализ сайта Проверить мой сайт на ScamAdviser.com