QR-код |
 |
Категории раздела |
Программирование на языке Паскаль
[26]
В данной категории представлены новые функции, созданные на языке Паскаль, которые могут пригодиться при написании своих программ
|
Программирование на Delphi
[19]
В данной категории представлены полезные подпрограммы, которые могут пригодиться при написании своих программ, а также рассматриваются примеры готовых проектов, создаваемых в среде программирования Delphi
|
Программирование на HTML
[1]
В данной категории рассматриваются примеры готовых проектов, создаваемых на языке HTML
|
Мои программы
[1]
Описание разработанных автором программ.
|
Online-программы
[2]
|
Прочее
[42]
Свободная тематика
|
|
Наш опрос |
|
Статистика |
Онлайн всего: 2 Гостей: 2 Пользователей: 0
|
|
Транслитерация
1. Определение символа: цифра, русская или английская буква
type
TTranslit = (Ru, En, Num, Sym);
function TranslitChar(s: char): TTranslit;
begin
Result:=Sym;
if (s>='А') and (s<='я') or (s='ё') or (s='Ё') then
Result:=Ru;
if (s>='A') and (s<='z') then
Result:=En;
if (s>='0') and (s<='9') then
Result:=Num;
end;
где:
Например,
TranslitChar('5') выведет
Num (цифра);
TranslitChar('%') выведет
Sym (символ);
TranslitChar('р') выведет
Ru (русская буква);
TranslitChar('p') выведет
En (английская буква, можете скопировать для
проверки).
2. Проверка на наличие символов в строке
function TranslitString(s: string; t: TTranslit): boolean;
var i: integer;
begin
Result:=false;
for i:=1 to Length(s) do
if TranslitChar(s[i])=t then
begin
Result:=true;
Exit;
end;
end;
где:
s – исходная строка;
t – тип символов.
Например,
TranslitString('Копируй символы для проверки!', Num)
выведет false
(эта строка не содержит цифр);
TranslitString('Точнее слова:', Sym) выведет
true (найдено
двоеточие);
TranslitString('Pascal', Ru) выведет
false
(нет русских букв);
TranslitString('кyб', En) выведет
true (Как так?
Оказывается 2-я буква – английская. Можно скопировать для проверки);
TranslitString('Windоws', Ru) выведет
true
(5-я буква русская).
3. Замена транслируемых символов с одного языка на другой
function TranslitRuEn(s: string; En: boolean): string;
const RuEn: array[0..1, 0..36] of string = (('щ', 'ё', 'ж', 'ц', 'ч', 'ш', 'ы', 'э',
'ю', 'я', 'а', 'б', 'в', 'в', 'г', 'д', 'е', 'з', 'и', 'й', 'к', 'л', 'м',
'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ъ', 'ы', 'ь', 'ь'),
('sch', 'yo', 'zh', 'ts', 'ch', 'sh', 'yi', 'ye', 'yu', 'ya', 'a', 'b', 'v',
'w', 'g', 'd', 'e', 'z', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's',
't', 'u', 'f', 'h', 'c', '''''', 'y', '''', '`'));
var i: integer;
a, b: byte;
begin
if En then
begin
a:=0;
b:=1;
end else
begin
a:=1;
b:=0;
end;
for i:=Low(RuEn[0]) to High(RuEn[0]) do
s:=StringReplaceNew(s, RuEn[a, i], RuEn[b, i], false, false);
Result:=s;
end;
где:
s – исходная строка;
En – транлировать на русский (false) или английский
(true) язык.
Например,
TranslitRuEn('Дрожжи', true) выведет
'Drozhzhi';
TranslitRuEn('Chislo', false) выведет
'Число'.
Примечание. Для полноценной работы данной функции
необходимо скопировать вспомогательную функцию "Замена
символа или фразы на новое значение":
function StringReplaceNew(s, OldPattern, NewPattern: string; RegOld, RegNew: boolean): string;
|
Категория: Программирование на языке Паскаль | Добавил: newerow1989 (12.03.2016)
|
Просмотров: 1517
| Рейтинг: 0.0/0 |
|
|
|