powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Транслитерация русских букв в латинские
17 сообщений из 17, страница 1 из 1
Транслитерация русских букв в латинские
    #39572200
ularsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть на форме 2 поля:
1. ФИО (1)
2. ФИО (2)
При вводе в поле 1: ПЕТРОВ ПЕТР АЛЕКСЕЕВИЧ, в поле 2 автоматически было заполнено PETROV PETR ALEKSEEVICH
Нет ли у кого нибудь алгоритма транслитерации русских букв в латинские?
...
Рейтинг: 0 / 0
Транслитерация русских букв в латинские
    #39572207
Grin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Транслитерация русских букв в латинские
    #39572295
Al_fa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ularsoftЕсть на форме 2 поля:
1. ФИО (1)
2. ФИО (2)
При вводе в поле 1: ПЕТРОВ ПЕТР АЛЕКСЕЕВИЧ, в поле 2 автоматически было заполнено PETROV PETR ALEKSEEVICH
Нет ли у кого нибудь алгоритма транслитерации русских букв в латинские?
Для этого надо использовать функцию CHRTRAN

CHRTRAN('ПЕТРОВ', 'АБВГД..', 'ABVGD..')
...
Рейтинг: 0 / 0
Транслитерация русских букв в латинские
    #39572677
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Al_faularsoftЕсть на форме 2 поля:
1. ФИО (1)
2. ФИО (2)
При вводе в поле 1: ПЕТРОВ ПЕТР АЛЕКСЕЕВИЧ, в поле 2 автоматически было заполнено PETROV PETR ALEKSEEVICH
Нет ли у кого нибудь алгоритма транслитерации русских букв в латинские?
Для этого надо использовать функцию CHRTRAN

CHRTRAN('ПЕТРОВ', 'АБВГД..', 'ABVGD..')

Не получится. Транслитерация - это не всегда соответствие один-в-один. В смысле одна буква русского языка заменяется одной буквой английского. Например, в данном примере буква "Ч" заменяется на "CH". Такую замену ChrTran() сделать не сможет

Хотя, конечно, можно сделать комбинированный подход. Сначала ChrTran() там, где замена одни-в-один, потом цикл по StrTran() где одна буква заменяется на набор букв. Правда, особого смысла в этом нет. Вряд ли данный "перевод" выполняется там, где требуется максимальная скорость преобразования
...
Рейтинг: 0 / 0
Транслитерация русских букв в латинские
    #39601169
ularsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМAl_faДля этого надо использовать функцию CHRTRAN

CHRTRAN('ПЕТРОВ', 'АБВГД..', 'ABVGD..')
Транслитерация - это не всегда соответствие один-в-один.

Например, в данном примере "ПЕТРОВ ПЕТР АЛЕКСЕЕВИЧ" буква "Ч" заменяется на "CH". Такую замену ChrTran() сделать не сможет.

Как сделать комбинированный подход? Сначала ChrTran() там, где замена одни-в-один, потом цикл по StrTran() где одна буква заменяется на набор букв.

Пожалуйста, приведите пример...
...
Рейтинг: 0 / 0
Транслитерация русских букв в латинские
    #39601213
ularsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кроме этого, если в поле "ОсОО Линк", то после транслитерации ОсОО на LLC, где ОсОО - Общество с ограниченной ответственностью.
ОАО на OJSC, ЗАО на CJSC, ИП на PE, ЧП на PE и т.д.
...
Рейтинг: 0 / 0
Транслитерация русских букв в латинские
    #39601215
ularsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С ума сойти...
...
Рейтинг: 0 / 0
Транслитерация русских букв в латинские
    #39601221
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вариант по ссылке 21046502 чем не устроил?
...
Рейтинг: 0 / 0
Транслитерация русских букв в латинские
    #39601225
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ularsoftКроме этого, если в поле "ОсОО Линк", то после транслитерации ОсОО на LLC, где ОсОО - Общество с ограниченной ответственностью.
ОАО на OJSC, ЗАО на CJSC, ИП на PE, ЧП на PE и т.д.
Это уже не транслитерация. Прописывай замену всех аббревиатур через strtran(), перед транслитерацией.
...
Рейтинг: 0 / 0
Транслитерация русских букв в латинские
    #39601229
ularsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima TВариант по ссылке 21046502 чем не устроил?
Вариант хороший... Но как его использовать? Немного подтолкните пожалуйста Дима...
...
Рейтинг: 0 / 0
Транслитерация русских букв в латинские
    #39601232
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ularsoftDima TВариант по ссылке 21046502 чем не устроил?
Вариант хороший... Но как его использовать? Немного подтолкните пожалуйста Дима...
В смысле? Также как любые UDF функции.

Просто вызвать
Код: sql
1.
? translit('Проверка')
...
Рейтинг: 0 / 0
Транслитерация русских букв в латинские
    #39601233
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно тот код упростить:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 PROCEDURE translit  
  LPARAMETERS tcString  
  tcString = ALLTRIM(UPPER(tcString))  
  tcString = strtran(tcString, 'ОАО', 'OJSC')  

  tcString = strtran(tcString, 'А', 'A')  
  tcString = strtran(tcString, 'Б', 'B')  
...
  tcString = strtran(tcString, 'Я', 'YA')  

return tcString
...
Рейтинг: 0 / 0
Транслитерация русских букв в латинские
    #39601388
ularsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima TПросто вызвать
Код: sql
1.
? translit('Проверка')


Сейчас попробую. Спасибо друг.
...
Рейтинг: 0 / 0
Транслитерация русских букв в латинские
    #39601446
ularsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima TМожно тот код упростить:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 PROCEDURE translit  
  LPARAMETERS tcString  
  tcString = ALLTRIM(UPPER(tcString))  
  tcString = strtran(tcString, 'ОАО', 'OJSC')  

  tcString = strtran(tcString, 'А', 'A')  
  tcString = strtran(tcString, 'Б', 'B')  
...
  tcString = strtran(tcString, 'Я', 'YA')  

return tcString



Данную процедуру я сохранил в od1k0t.prg
Вызываю в LostFocus Event таким образом
nam1=table1.nam1
Thisformset.nam2=od1k0t(nam1)

После чего у меня ругается на параметр. Что я не правильно делаю?
...
Рейтинг: 0 / 0
Транслитерация русских букв в латинские
    #39601466
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ularsoftДанную процедуру я сохранил в od1k0t.prg
Вызываю в LostFocus Event таким образом
nam1=table1.nam1
Thisformset.nam2=od1k0t(nam1)

После чего у меня ругается на параметр. Что я не правильно делаю?
Ругается матом или есть сообщение об ошибке?

Если в prg сохранил, то как минимум НЕ надо первую строку " PROCEDURE translit ", на этом мои телепатические способности заканчиваются, надо сообщение об ошибке.
...
Рейтинг: 0 / 0
Транслитерация русских букв в латинские
    #39601467
ularsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima TРугается матом или есть сообщение об ошибке?
...
Рейтинг: 0 / 0
Транслитерация русских букв в латинские
    #39601469
ularsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima TЕсли в prg сохранил, то как минимум НЕ надо первую строку " PROCEDURE translit "СУПЕР!!!! ВСЕ ПОЛУЧИЛОСЬ!
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Транслитерация русских букв в латинские
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]