Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.09.2014, 07:30   #1
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию Склонение ФИО

Здравствуйте.
Встал вопрос в написании функции склоняющей Фио по падежам, кто может поделиться полезной информацией в этой области?
Lokos вне форума Ответить с цитированием
Старый 10.09.2014, 07:59   #2
kta87
Форумчанин
 
Аватар для kta87
 
Регистрация: 22.02.2010
Сообщений: 912
По умолчанию

Вот тут есть пример макроса на VBA. Реализовать на Object Pascal это труда не составит.
kta87 вне форума Ответить с цитированием
Старый 10.09.2014, 08:22   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Lokos Посмотреть сообщение
Здравствуйте.
Встал вопрос в написании функции склоняющей Фио по падежам, кто может поделиться полезной информацией в этой области?
Лучшее, что было разработано в этой области для русского языка, имхо,
было на Королевстве Delphi вот тут:
Склонение фамилий, имен и отчеств по падежам Библиотека функций.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.09.2014, 02:50   #4
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

читал про эту библиотеку но как то с ней не сложилось, может что то не так делаю.
код с оф сайта
Код:
function GetFIOPadeg;
var pGetFIOPadeg: TGetFIOPadeg;
begin
  LoadPadeg;
  Result:='';
  pGetFIOPadeg:=GetProcAddress(LibPadeg, 'GetFIOPadeg');
  if not Assigned(pGetFIOPadeg) then begin
    raise Exception.Create('Функция ''GetFIOPadeg'' в библиотеке PADEG.DLL не найдена');
  end;
  nLen:=Length(pLastName+pFirstName+pMiddleName)+10;
  res:=StrAlloc(nLen);
  try
    error:=pGetFIOPadeg(PChar(pLastName), PChar(pFirstName), PChar(pMiddleName), bSex, nPadeg, res, nLen);
    if error = 0 then
      SetString(Result, res, nLen)
    else
      CreateError(error);
  finally
    StrDispose(res);
  end;
end;
мой код
Код:
procedure TForm1.Button2Click(Sender: TObject);
var
pResult:pChar;
nLen:LongInt;
 pVar:integer;
 result:string;
begin
     if Assigned(GetFIOPadeg) then
      begin
        nLen :=( Length(LblSernameZakaz.Text)+Length(LblNameZakaz.Text)+Length(LblPatronymicZakaz.Text))+20;

        pResult:=StrAlloc(nLen);
        try   pVar:=GetFIOPadeg(PChar(LblSernameZakaz.Text),PChar(LblNameZakaz.Text),PChar(LblPatronymicZakaz.Text),false,3,pResult, nLen);
           if pvar=0 then
            SetString(Result, pResult, nLen) ;
           Memo11.Lines.Add(inttostr(pvar));
           Memo11.Lines.Add(Result);
        finally
           StrDispose(pResult);
       end;
end;
end;
Выводится грубо говоря каша, кусок фамилии, имени, отчества и гора непонятных символов, подскажите в чем проблема?
Lokos вне форума Ответить с цитированием
Старый 11.09.2014, 08:05   #5
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

В который раз убеждаюсь что это лучший форум)
вот отличный пост где очень все интересно расписано правда реализую сам с именами чудесно работает)
http://www.programmersforum.ru/showthread.php?t=58898
Lokos вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перенос ФИО Exlus1v3 Microsoft Office Excel 0 15.05.2014 15:42
Склонение существительных за 100р. KOMPNET Помощь студентам 6 22.12.2011 08:26
Склонение существительных KOMPNET Фриланс 1 21.12.2011 20:56
Склеить скрипт Время суток+Вы были тут N раз+склонение *РАЗ*_*РАЗА* vkontakte JavaScript, Ajax 4 12.09.2011 14:41
Помогите реализовать склонение числителых winnix Помощь студентам 4 31.03.2008 19:27