Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.09.23;
Скачать: [xml.tar.bz2];

Вниз

Склонение Фамилий и Имен   Найти похожие ветки 

 
Маньяк   (2002-09-02 14:58) [0]

Приветики... Может кто-то знаить???
Подскажите алгоритму... Есть Фамилии Имена и Отчества...
Надо в отчете ставить их в соответствующий падеж, ну типа окончания менять... Как бы это сделать???


 
MBo   (2002-09-02 14:59) [1]

на delphi.vitpc.com


 
kull   (2002-09-02 15:20) [2]

Никак. Только имея словарь имен и фамилий.


 
liho26   (2002-09-11 08:08) [3]

Можно это сделать. У имен есть такая закономерность. женские имена почти всегда оканчиваются на гласную.
Примеры:
Виктория
Александра
Валерия
Анна
Ольга
Инга
...........
Мужские же оканчиваются на согласную или на краткую гласную.

С женскими именами проще. берем последнюю букву и меняем ее на нужную букву падежа.
Примерно так


 
roman002   (2002-09-11 08:17) [4]

Вот пример из 1с (немножко кривой), основан на анализе окончаний
//ФИО в винительный падеж
Функция глФИОВВинительном(Фам,Имя,Отч) Экспорт
Вып = 0;//признак выполнения одного из условий
//фамилия
Если Прав(Фам,1) = "а" Тогда
Рез = Лев(Фам,СтрДлина(Фам)-1)+"у";
Вып = 1;
КонецЕсли;
Если Прав(Фам,2) = "ая" Тогда
Рез = Лев(Фам,СтрДлина(Фам)-2)+"ую";
Вып = 1;
КонецЕсли;
Если Прав(Фам,2) = "ий" Тогда
Рез = Лев(Фам,СтрДлина(Фам)-2)+"ого";
Вып = 1;
КонецЕсли;
Если Прав(Фам,2) = "ый" Тогда
Рез = Лев(Фам,СтрДлина(Фам)-2)+"ого";
Вып = 1;
КонецЕсли;
Если Прав(Фам,2) = "ин" Тогда
Рез = Фам+"а";
Вып = 1;
КонецЕсли;
Если Прав(Фам,2) = "ов" Тогда
Рез = Фам+"а";
Вып = 1;
КонецЕсли;
Если Прав(Фам,2) = "ев" Тогда
Рез = Фам+"а";
Вып = 1;
КонецЕсли;
Если Вып = 0 Тогда//не выполнено ни одно условие
Рез = Фам;
КонецЕсли;
Рез = Рез+" ";
Вып = 0;
//имя
Если Прав(Имя,1) = "а" Тогда
Рез = Рез+Лев(Имя,СтрДлина(Имя)-1)+"у";
Вып = 1;
КонецЕсли;
Если Прав(Имя,1) = "я" Тогда
Рез = Рез+Лев(Имя,СтрДлина(Имя)-1)+"ю";
Вып = 1;
КонецЕсли;
Если Прав(Имя,1) = "й" Тогда
Рез = Рез+Лев(Имя,СтрДлина(Имя)-1)+"я";
Вып = 1;
КонецЕсли;
Если Прав(Имя,2) = "вь" Тогда
Рез = Рез+Имя;
Вып = 1;
КонецЕсли;
Если Вып = 0 Тогда//не выполнено ни одно условие
Рез = Рез+Имя+"а";
КонецЕсли;
Рез = Рез+" ";
Вып = 0;
//отчество
Если Прав(Отч,1) = "а" Тогда
Рез = Рез+Лев(Отч,СтрДлина(Отч)-1)+"у";
Вып = 1;
КонецЕсли;
Если Прав(Отч,1) = "ч" Тогда
Рез = Рез+Отч+"а";
Вып = 1;
КонецЕсли;
Если Вып = 0 Тогда//не выполнено ни одно условие
Рез = Рез+Отч;
КонецЕсли;
Возврат Рез;
КонецФункции//ФИОВВинительном(Фам,Имя,Отч)

//ФИО в дательном падеже
Функция глФИОВДательном(Фам,Имя,Отч) Экспорт
Вып = 0;//признак выполнения одного из условий
//фамилия
Если Прав(Фам,1) = "а" Тогда
Рез = Лев(Фам,СтрДлина(Фам)-1)+"ой";
Вып = 1;
КонецЕсли;
Если Прав(Фам,2) = "ая" Тогда
Рез = Лев(Фам,СтрДлина(Фам)-2)+"ой";
Вып = 1;
КонецЕсли;
Если Прав(Фам,2) = "ий" Тогда
Рез = Лев(Фам,СтрДлина(Фам)-2)+"ому";
Вып = 1;
КонецЕсли;
Если Прав(Фам,2) = "ый" Тогда
Рез = Лев(Фам,СтрДлина(Фам)-2)+"ому";
Вып = 1;
КонецЕсли;
Если Прав(Фам,2) = "ин" Тогда
Рез = Фам+"у";
Вып = 1;
КонецЕсли;
Если Прав(Фам,2) = "ов" Тогда
Рез = Фам+"у";
Вып = 1;
КонецЕсли;
Если Прав(Фам,2) = "ев" Тогда
Рез = Фам+"у";
Вып = 1;
КонецЕсли;
Если Вып = 0 Тогда//не выполнено ни одно условие
Рез = Фам;
КонецЕсли;
Рез = Рез+" ";
Вып = 0;
//имя
Если Прав(Имя,1) = "а" Тогда
Рез = Рез+Лев(Имя,СтрДлина(Имя)-1)+"е";
Вып = 1;
КонецЕсли;
Если Прав(Имя,1) = "я" Тогда
Рез = Рез+Лев(Имя,СтрДлина(Имя)-1)+"е";
Вып = 1;
КонецЕсли;
Если Прав(Имя,1) = "й" Тогда
Рез = Рез+Лев(Имя,СтрДлина(Имя)-1)+"ю";
Вып = 1;
КонецЕсли;
Если Прав(Имя,2) = "вь" Тогда
Рез = Рез+Лев(Имя,СтрДлина(Имя)-2)+"ви";
Вып = 1;
КонецЕсли;
Если Вып = 0 Тогда//не выполнено ни одно условие
Рез = Рез+Имя+"у";
КонецЕсли;
Рез = Рез+" ";
Вып = 0;
//отчество
Если Прав(Отч,1) = "а" Тогда
Рез = Рез+Лев(Отч,СтрДлина(Отч)-1)+"е";
Вып = 1;
КонецЕсли;
Если Прав(Отч,1) = "ч" Тогда
Рез = Рез+Отч+"у";
Вып = 1;
КонецЕсли;
Если Вып = 0 Тогда//не выполнено ни одно условие
Рез = Рез+Отч;
КонецЕсли;
Возврат Рез;
КонецФункции//ФИОВДательном(Фам,Имя,Отч)


 
ЮРИЙ_К   (2002-09-11 09:08) [5]

Зачем голову ломать, когда уже все готовое есть
берешь библиотеку и пользуешься на здоровье. Проверено, работает отлично - огромная благодарность автору

http://www.delphikingdom.com/mastering/poligon/webpadeg.htm



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.09.23;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.007 c
14-73868
03
2002-08-29 10:52
2002.09.23
Подскажите где найти описание sql interbase


1-73645
Anar
2002-09-12 18:31
2002.09.23
Работа с системным меню


14-73832
VictorT
2002-08-27 15:20
2002.09.23
база функций на этом сайте


14-73821
Soft
2002-08-26 20:05
2002.09.23
Создание собственного Help файла


3-73490
Real
2002-08-31 01:32
2002.09.23
Помогите разобраться: нужно в БД хранить кучу документов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский