|
#1
|
||||
|
||||
Склонение фамилий
В комбобокс грузится список фамилий с инициалами, скажем Иванов П.П. Сидоров А.С. и т.д.. Подскажите как сделать так, если я выбрал в комбобоксе Иванов П.П. то в едит1 будет Иванову П.П., соответсвенно если выбран Сидоров А.С. то Сидорову А.С..
|
#2
|
||||
|
||||
а что должно быть с "Куценко"?) "Куценкоу" или "Куценку"
Пишу программы за еду. __________________ |
#3
|
||||
|
||||
Цитата:
|
#4
|
||||
|
||||
еще фамилии женщин "Сидорова" - "Сидоровой"...
Пишу программы за еду. __________________ |
#5
|
||||
|
||||
Цитата:
|
#6
|
||||
|
||||
смотрю базу абонентов:
СИНГУР, МАРУЩАК, ДУДАРЬ думаю они тоже не склоняются Пишу программы за еду. __________________ |
#7
|
||||
|
||||
Вконтакт вроде по оконцанию фамилии анализирует, потом склоняет.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#8
|
||||
|
||||
Чуть подумал, и понял что с наскока не получится. Но попробовать стоит.
|
#9
|
||||
|
||||
в Королевстве:
On-line тестирование библиотеки склонений Склонение фамилий, имен и отчеств по падежам Библиотека функций Пишу программы за еду. __________________ |
#10
|
||||
|
||||
Когда дело касается Русских фамилий, с некоторыми исключениями, можно вычислить правильные падежи, а вот когда вы столкнетесь с фамилиями из той-же грузии, армении, казахстана и т.д. вот тут начнется проблема. Еще хуже дело обстоит с отчествами, где приставки могут обозначать сразу и пол и статус родственный и черте что еще.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#11
|
||||
|
||||
Велик и Могуч Русский Язык
sorry for offtop Пишу программы за еду. __________________ |
#12
|
||||
|
||||
Попробовал использовать для склонения фамилий Padeg.dll. Работает склонение если нет инициалов. Если выбираю в комбобоксе "Иванов" в едите выдает "Иванову". Проблема в том что не хочет склонять если с фамилией идут инициалы (Иванов И.И.).
У меня padeg.dll в папке с программой. Код:
public { Public declarations } end; var DllHandle : HMODULE; GetFIOPadeg : function (pLastName, pFirstName, pMiddleName: PChar; bSex: Boolean; nPadeg: LongInt; pResult: PChar; var nLen: LongInt): Integer; stdcall; Form2: TForm2; Sex:boolean; nLen:LongInt; pResult:PChar; pVar:integer; FPadeg:Boolean; Fio,nName,SName:string; implementation procedure TForm2.ComboBox2Chenge(Sender: TObject); begin Fio:=ComboBox2.Text; Sex:=True; if Assigned(GetFIOPadeg) then begin nLen := Length(FIO)+10; pResult:=StrAlloc(nLen); try pVar:=GetFIOPadeg(PChar(Fio),'','',Sex,3, pResult, nLen); Edit3.Text:=pResult; finally StrDispose(pResult); end; end; end;procedure TForm12.ComboBox2Chenge(Sender: TObject); begin Fio:=ComboBox2.Text; Sex:=True; if Assigned(GetFIOPadeg) then begin nLen := Length(FIO)+10; pResult:=StrAlloc(nLen); try pVar:=GetFIOPadeg(PChar(Fio),'','',Sex,3, pResult, nLen); Edit3.Text:=pResult; finally StrDispose(pResult); end; end; end; initialization DllHandle := LoadLibrary('padeg.dll'); FPadeg:=True; if DllHandle <> 0 then Begin @GetFIOPadeg := GetProcAddress(DllHandle, 'GetFIOPadeg'); end else FPadeg:=False; finalization FreeLibrary(DllHandle); end. Последний раз редактировалось fofka, 18.07.2012 в 11:43. |