Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Склонение по падежам ФИО в Access  [new]
Сергей_Лосев
Member

Откуда:
Сообщений: 47
В Access 2013 хочу исползовать стороннюю dll библиотеку Плахова/Покаташкина, ссылка, для перевода ФИО и должности в дательный падеж. Причём есть пример его использования. Согласно примера пытаюсь запустить, но без результатно. Причём Access библиотеку видит, обращение идёт но ответа никакого от функции нет.

Private Declare Function GetPadeg Lib "D:\YandexDisk\Работа\access\Лабпроверка\Padeg.dll" Alias "GetFIOPadegFSAS" _
           (ByVal pFIO As String, ByVal nPadeg As Integer, _
           ByVal pResult As String, ByRef nLen As Integer) As Integer
' Функция преобразования cFIO в падеж nPadeg
Public Function MakePadeg(ByVal cFIO As String, _
                          ByVal nPadeg As Integer) As String
Dim tmpS As String
Dim nLen As Integer
Dim RetVal As Integer
  nLen = 255
  tmpS = String(nLen, 0)
  RetVal = GetPadeg(cFIO, nPadeg, tmpS, nLen)
  If RetVal = -1 Then MsgBox "Недопустимое значение падежа - " & _
                             "(" & nPadeg & ")", , "Склонение"
  MakePadeg = Mid(tmpS, 1, nLen)
  Debug.Print MakePadeg
End Function

Function my()
Debug.Print MakePadeg("Лосев Сергей Викторович", 5)
End Function
1 июн 14, 16:49    [16102850]     Ответить | Цитировать Сообщить модератору
 Re: Склонение по падежам ФИО в Access  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20360
сказано же
Шайтан
иди в ветку по Access'у


Модератор: Тема перенесена из форума "Visual Basic".
1 июн 14, 18:12    [16103062]     Ответить | Цитировать Сообщить модератору
 Re: Склонение по падежам ФИО в Access  [new]
7884
Guest
http://msdn.microsoft.com/en-us/library/ms859484.aspx
2 июн 14, 11:34    [16104903]     Ответить | Цитировать Сообщить модератору
 Re: Склонение по падежам ФИО в Access  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40416
На всякий случай: 177550
2 июн 14, 12:29    [16105417]     Ответить | Цитировать Сообщить модератору
 Re: Склонение по падежам ФИО в Access  [new]
guest_rusimport
Guest
Сергей_Лосев,

а это не подошло?
http://am.rusimport.ru/MSAccess/topic.aspx?ID=585
3 июн 14, 19:49    [16115277]     Ответить | Цитировать Сообщить модератору
 Re: Склонение по падежам ФИО в Access  [new]
PMVolga
Guest
Я прикручивал данную библиотеку к Аксессу. Рабочий вариант получился. Надо только вспомнить, как
4 июн 14, 11:45    [16117646]     Ответить | Цитировать Сообщить модератору
 Re: Склонение по падежам ФИО в Access  [new]
Сергей_Лосев
Member

Откуда:
Сообщений: 47
PMVolga
Я прикручивал данную библиотеку к Аксессу. Рабочий вариант получился. Надо только вспомнить, как


Если это У Вас получится или найдёте пример то буду крайне признателен, то получается ситуация что она вроде и ошибку не выдаёт и функции не возвращают никакого значения.
5 июн 14, 05:30    [16123617]     Ответить | Цитировать Сообщить модератору
 Re: Склонение по падежам ФИО в Access  [new]
PMVolga
Guest
Сергей_Лосев,

Вспомнил )))
Надо скопировать padeg.dll в папку C:\Windows\system32 либо зарегистрировать ее в системе, а дальше я использовал вот такой код:
Option Explicit

'КОНСТАНТЫ ПАДЕЖЕЙ
'-----------------------------------------------------
Public Const pNon As Long = 0    ' Не определен
Public Const pImn As Long = 1    ' Именительный Кто? Что?
Public Const pRod As Long = 2    ' Родительный Кого? Чего?
Public Const pDat As Long = 3    ' Дательный Давать Кому? Чему?
Public Const pVin As Long = 4    ' Винительный Винить Кого? Что?
Public Const pTvr As Long = 5    ' Творительный Доволен Кем? Чем?
Public Const pPre As Long = 6    ' Предложный Думать О ком? О чем? В ком? В чем?

Private Declare Function GetPadeg Lib "Padeg.dll" Alias "GetFIOPadegFSAS" _
  (ByVal pFIO As String, ByVal nPadeg As Long, ByVal pResult As String, _
   ByRef nLen As Long) As Integer

Private Declare Function GetNominativePadeg Lib "Padeg.dll" _
  (ByVal pFIO As String, ByVal pResult As String, ByRef nLen As Long) As Integer

Private Declare Function GetAppointmentPadeg Lib "Padeg.dll" _
  (ByVal pAppointment As String, ByVal nPadeg As Long, ByVal pResult As String, _
   ByRef nLen As Long) As Integer

Private Declare Function GetFullAppointmentPadeg Lib "Padeg.dll" _
  (ByVal pAppointment As String, ByVal pOffice As String, ByVal nPadeg As Long, ByVal pResult As String, _
   ByRef nLen As Long) As Integer

Private Declare Function GetPadegAs Lib "Padeg.dll" Alias "GetFIOPadegAS" _
  (ByVal pLname As String, ByVal pFname As String, ByVal pMname As String, ByVal nPadeg As Long, ByVal pResult As String, _
   ByRef nLen As Long) As Integer

Private Declare Function GetPadegFS Lib "Padeg.dll" Alias "GetFIOPadegFS" _
  (ByVal pFIO As String, ByVal bSex As Boolean, ByVal nPadeg As Long, ByVal pResult As String, _
   ByRef nLen As Long) As Integer

Public Function FIOPadegFS(ByVal cFIO As String, ByVal SexM As Boolean, ByVal nPadeg As Long) As String
Dim tmpS As String
Dim nLen As Long
Dim RetVal As Integer
  nLen = 255
  tmpS = String(nLen, 0)
  RetVal = GetPadegFS(cFIO, SexM, nPadeg, tmpS, nLen)
  If RetVal = -1 Then MsgBox "Недопустимое значение падежа - " & _
                             "(" & nPadeg & ")", , "Склонение ФИО"
  FIOPadegFS = Mid(tmpS, 1, nLen)
End Function


Собственно, все как в примере. Только пришлось вводить поле признака пола человека (SexM) в БД - универсальная функция не всегда корректно преобразует.
5 июн 14, 07:48    [16123693]     Ответить | Цитировать Сообщить модератору
 Re: Склонение по падежам ФИО в Access  [new]
Сергей_Лосев
Member

Откуда:
Сообщений: 47
Выражаю свою благодарность, всё заработало, но сейчас встала проблема по использзованию функции GetAppointmentPadeg (склонение должности), по аналогии сделать не получается, буду рад любому совету.
13 июн 14, 10:22    [16160690]     Ответить | Цитировать Сообщить модератору
 Re: Склонение по падежам ФИО в Access  [new]
PMVolga
Guest
Сергей_Лосев,
У меня вот такая функция используется:

Public Function PosPadeg(ByVal cApp As String, ByVal nPadeg As Long) As String
Dim tmpS As String
Dim nLen As Long
Dim RetVal As Integer
  nLen = 255
  tmpS = String(nLen, 0)
  RetVal = GetAppointmentPadeg(cApp, nPadeg, tmpS, nLen)
  If RetVal = -1 Then MsgBox "Недопустимое значение падежа - " & _
                             "(" & nPadeg & ")", , "Склонение Должности"
  PosPadeg = Mid(tmpS, 1, nLen)
End Function
16 июн 14, 13:30    [16169137]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Склонение по падежам ФИО в Access  [new]
КВВ
Member

Откуда:
Сообщений: 7
guest_rusimport
Сергей_Лосев,
а это не подошло?
http://am.rusimport.ru/MSAccess/topic.aspx?ID=585

Лично мне подошло, взял оттуда, понравилась идея с поочередным перебором букв окончаний и суффиксов.
Правда, некоторые вопросы исправил, т.к. то, что у Валерия Крук было исключением, оказалось правилом,
а также добавил 2 падежа: http://am.rusimport.ru/MSAccess/fattach.aspx?id=67877.

Конечно, немного, процентов на 5 из частоты числа встречающихся имен и фамилий, по точности склонения
осталось вне этого метода. Например, в отношении фамилий, которые в зависимости от ударения меняют основу своего словообразования с существительного на прилагательное: картИна или кАртина.
14 сен 16, 09:48    [19662393]     Ответить | Цитировать Сообщить модератору
 Re: Склонение по падежам ФИО в Access  [new]
_гурД
Guest
Я соглашусь с Санычем: русский язык очень гибкий, всегда можно выкрутиться именительным падежом.
Смотрится, соглашусь, иначе (хотя, смотря как сделать текст...), но в случае хотя бы с одной ошибкой
программного перевода в трорительный будет ярко выраженный ляп...
17 сен 16, 06:26    [19676426]     Ответить | Цитировать Сообщить модератору
 Re: Склонение по падежам ФИО в Access  [new]
_КВВ
Guest
Да, склонением в творительном падеже, видимо, редко кто пользуется :)
Удивила обнаруженная ошибка при склонении своего же имени Вячеслав в творительном падеже. Решил проверить для интереса склонение все или большинство мужских и женских имен на русском языке. В результате обнаружились еще ошибки при склонении имен Генрих, Фридрих, Мартин, Мартын, Аглая, Фая и им подобным совсем нерусским, ведь, все равно в русском написании должны склоняться по правилам русского языка. Извиняюсь за файл по предыдущей ссылке, код чуть-чуть исправил: [url=]http://am.rusimport.ru/MSAccess/fattach.aspx?id=68061[/url]
28 мар 17, 16:51    [20342615]     Ответить | Цитировать Сообщить модератору
 Re: Склонение по падежам ФИО в Access  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40416
_КВВ
Да, склонением в творительном падеже, видимо, редко кто пользуется :)
Удивила обнаруженная ошибка при склонении своего же имени Вячеслав в творительном падеже. Решил проверить для интереса склонение всех или большинства мужских и женских имен на русском языке. В результате обнаружились еще ошибки при склонении имен Генрих, Фридрих, Мартин, Мартын, Аглая, Фая и им подобных совсем нерусских, ведь, все равно в русском написании должны склоняться по правилам русского языка. Извиняюсь за файл по предыдущей ссылке, код чуть-чуть исправил: [url=]http://am.rusimport.ru/MSAccess/fattach.aspx?id=68061[/url]

Исправил ошибки в падежах.
29 мар 17, 12:18    [20345611]     Ответить | Цитировать Сообщить модератору
 Re: Лесенка с правилами [основана 10 сен 12] [OFF]  [new]
гурД
Member

Откуда: Присоединённые территории
Сообщений: 327
Владимир Саныч
_КВВ
Да, склонением в творительном падеже, видимо, редко кто пользуется :)
Удивила обнаруженная ошибка при склонении своего же имени Вячеслав в творительном падеже. Решил проверить для интереса склонение всех или большинства мужских и женских имен на русском языке. В результате обнаружились еще ошибки при склонении имен Генрих, Фридрих, Мартин, Мартын, Аглая, Фая и им подобных совсем нерусских, ведь, все равно в русском написании должны склоняться по правилам русского языка. Извиняюсь за файл по предыдущей ссылке, код чуть-чуть исправил: [url=]http://am.rusimport.ru/MSAccess/fattach.aspx?id=68061[/url]

Исправил ошибки в падежах.

Программист программисту зануда...
29 мар 17, 13:45    [20346236]     Ответить | Цитировать Сообщить модератору
 Re: Склонение по падежам ФИО в Access  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40416
гурД
Программист программисту зануда...

Главное, что здесь исправление падежей не оффтопик...
30 мар 17, 00:25    [20349085]     Ответить | Цитировать Сообщить модератору
 Re: Склонение по падежам ФИО в Access  [new]
гурД
Member

Откуда: Присоединённые территории
Сообщений: 327
Владимир Саныч
здесь исправление падежей не оффтопик...

Исправил ошибки в падежах.
Решил проверить для интереса на склонение всех или большинствао мужских и женских имен на русском языке.
В результате обнаружились еще ошибки при склонении имен:
Генрих, Фридрих, Мартин, Мартын, Аглая, Фая и им подобныхе совсем нерусскихе ведь
все равно в русском написании должны склоняться по правилам русского языка

20 май 17, 21:22    [20498767]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Склонение по падежам ФИО в Access  [new]
uum
Member

Откуда:
Сообщений: 15
Столкнулся с правилом склонения корейских ФИО, заключающееся в том, что склоняется лишь последняя часть ФИО, к тому же с особенностями склонения ИМЕНИ, а не ФАМИЛИИ. Пришлось внести очередные некоторые исправления в код: http://am.rusimport.ru/MSAccess/fattach.aspx?id=68444
P.S. гурД был прав: в предыдущем посте, скоропостижно закрытом вместе с браузером силой мысли вошедшего начальника, был пропущен предлог "на", и запланированное окончание редактирования моей фразы с сайта Митина А.П. состояться не представилось возможным :))
4 июл 19, 17:33    [21920992]     Ответить | Цитировать Сообщить модератору
 Re: Склонение по падежам ФИО в Access  [new]
__Michelle
Member

Откуда:
Сообщений: 3061
Sorry, но
uum
Столкнулся с правилом склонения корейских ФИО, заключающемся в том, что ....
)))
5 июл 19, 10:14    [21921372]     Ответить | Цитировать Сообщить модератору
 Re: Склонение по падежам ФИО в Access  [new]
uum
Member

Откуда:
Сообщений: 15
__Michelle, благодарю.
Не оправданий ради, но истины для...
Сначала напечатал, что обнаружил правило чуть ли не с претензией на открытие.
Но затем напечатал честно, что просто столкнулся с правилом. ;)
5 июл 19, 10:59    [21921422]     Ответить | Цитировать Сообщить модератору
 Re: Склонение по падежам ФИО в Access  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 5995
Даже по этому топику,которому уже 5 лет, видно, что склонение фамилий дело неблагодарное и без огромных словарей или искусственного интеллекта задача неразрешима на 100%
КВВ
Конечно, немного, процентов на 5 из частоты числа встречающихся имен и фамилий, по точности склонения осталось вне этого метода.
5 июл 19, 12:39    [21921525]     Ответить | Цитировать Сообщить модератору
 Re: Склонение по падежам ФИО в Access  [new]
__Michelle
Member

Откуда:
Сообщений: 3061
uum
__Michelle, благодарю.
Не оправданий ради, но истины для...
Сначала напечатал, что обнаружил правило чуть ли не с претензией на открытие.
Но затем напечатал честно, что просто столкнулся с правилом. ;)
А я так и предположила, что сначала была одна мысль, потом она слегка поменялась, а рудимент остался.)))
5 июл 19, 14:19    [21921629]     Ответить | Цитировать Сообщить модератору
 Re: Склонение по падежам ФИО в Access  [new]
uum
Member

Откуда:
Сообщений: 15
sdku, согласен со 100%. Но 99,999% и без искусственного интеллекта и без огромных словарей задача вполне разрешима, если добавить дополнительные поля условий(*) при вводе ФИО, а также вводить фамилию, имя и отчество - каждое в своем поле. В коде Валерия Крук склоняется сконкатенированное ФИО, что вызывает сложности(3).
* например:
1) страна принадлежности фамилии:
- тогда корейские, китайские и т.п. ФИО будут склоняться правильно и вне имеющейся сейчас в коде формуле компромиссного характера: ФИО = 4х4х4,
- французские, грузинские фамилии на -а, -я, одинаковые по написанию с др., не будут склоняться, а другие - будут,
- ...
2) словообразование фамилии от существительного или прилагательного или на какую гласную с конца падает ударение:
- будут склонять по разному фамилии СофтИна (Софтины, Софтине, Софтину, Софтиной) и СОфтина (Софтиной, Софтиной, Софтину, Софтиной),
-...
3) двойные фамилии (без тире: Де Фюнес, Эрл Грей, Ба Тоан) будут склоняться правильно, как и не будет ошибок в склонении ФИО, где нужно точно указывать что именно есть фамилия, что имя, а что отчество, например: Карлос Сесар Сальвадор Аранья Кастанеда.
4) поле, просто запрещающее склонять фамилию по причине, к примеру, недавно проведенной экспертизы, подтвердившей, что такая фамилия на сегодняшний день не склоняется,
словарь исключений для ФИО в таком случае вряд ли потребуется, ...
5 июл 19, 14:38    [21921642]     Ответить | Цитировать Сообщить модератору
 Re: Склонение по падежам ФИО в Access  [new]
ldfanate
Member

Откуда:
Сообщений: 84
страна принадлежности фамилии


А если например негр мироощущает себя русским? Как будем нац.идентифицировать? :)

Сомнительная эта затея - разве что как инструмент для автозаполнения поля ручного ввода по умолчанию (а дальше ручками). Процент ошибок даже в нашей многонациональной стране будет немалым.
5 июл 19, 15:02    [21921651]     Ответить | Цитировать Сообщить модератору
 Re: Склонение по падежам ФИО в Access  [new]
uum
Member

Откуда:
Сообщений: 15
ldfanate, а чем негр лучше или хуже корейцев или китайцев, менталитет которых уже в нескольких поколениях российский? :)
ГРАМОТА.РУ
13.1.7. Есть случаи, когда исходная форма фамилии может быть воспринята неоднозначно с точки зрения ее морфологического устройства. Случаи эти немногочисленны, но интересны и лингвистически, и с точки зрения практических трудностей, которые могут быть с ними связаны. http://www.gramota.tv/spravka/letters/71
5 июл 19, 15:20    [21921664]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft Access Ответить