Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Склонение по падежам ФИО в Access / 25 сообщений из 119, страница 1 из 5
01.06.2014, 16:49
    #38658050
Склонение по падежам ФИО в Access
В Access 2013 хочу исползовать стороннюю dll библиотеку Плахова/Покаташкина, ссылка , для перевода ФИО и должности в дательный падеж. Причём есть пример его использования. Согласно примера пытаюсь запустить, но без результатно. Причём Access библиотеку видит, обращение идёт но ответа никакого от функции нет.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
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
...
Рейтинг: 0 / 0
01.06.2014, 18:12
    #38658105
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Склонение по падежам ФИО в Access
сказано жеШайтаниди в ветку по Access'у

Модератор: Тема перенесена из форума "Visual Basic".
...
Рейтинг: 0 / 0
02.06.2014, 11:34
    #38658400
7884
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Склонение по падежам ФИО в Access
...
Рейтинг: 0 / 0
02.06.2014, 12:29
    #38658510
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Склонение по падежам ФИО в Access
На всякий случай: 177550
...
Рейтинг: 0 / 0
03.06.2014, 19:49
    #38660687
guest_rusimport
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Склонение по падежам ФИО в Access
Сергей_Лосев,

а это не подошло?
http://am.rusimport.ru/MSAccess/topic.aspx?ID=585
...
Рейтинг: 0 / 0
04.06.2014, 11:45
    #38661149
PMVolga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Склонение по падежам ФИО в Access
Я прикручивал данную библиотеку к Аксессу. Рабочий вариант получился. Надо только вспомнить, как
...
Рейтинг: 0 / 0
05.06.2014, 05:30
    #38662109
Склонение по падежам ФИО в Access
PMVolgaЯ прикручивал данную библиотеку к Аксессу. Рабочий вариант получился. Надо только вспомнить, как

Если это У Вас получится или найдёте пример то буду крайне признателен, то получается ситуация что она вроде и ошибку не выдаёт и функции не возвращают никакого значения.
...
Рейтинг: 0 / 0
05.06.2014, 07:48
    #38662131
PMVolga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Склонение по падежам ФИО в Access
Сергей_Лосев,

Вспомнил )))
Надо скопировать padeg.dll в папку C:\Windows\system32 либо зарегистрировать ее в системе, а дальше я использовал вот такой код:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
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) в БД - универсальная функция не всегда корректно преобразует.
...
Рейтинг: 0 / 0
13.06.2014, 10:22
    #38668763
Склонение по падежам ФИО в Access
Выражаю свою благодарность, всё заработало, но сейчас встала проблема по использзованию функции GetAppointmentPadeg (склонение должности), по аналогии сделать не получается, буду рад любому совету.
...
Рейтинг: 0 / 0
16.06.2014, 13:30
    #38670348
PMVolga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Склонение по падежам ФИО в Access
Сергей_Лосев,
У меня вот такая функция используется:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
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
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
14.09.2016, 09:48
    #39308824
КВВ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Склонение по падежам ФИО в Access
guest_rusimportСергей_Лосев,
а это не подошло?
http://am.rusimport.ru/MSAccess/topic.aspx?ID=585
Лично мне подошло, взял оттуда, понравилась идея с поочередным перебором букв окончаний и суффиксов.
Правда, некоторые вопросы исправил, т.к. то, что у Валерия Крук было исключением, оказалось правилом,
а также добавил 2 падежа: http://am.rusimport.ru/MSAccess/fattach.aspx?id=67877.

Конечно, немного, процентов на 5 из частоты числа встречающихся имен и фамилий, по точности склонения
осталось вне этого метода. Например, в отношении фамилий, которые в зависимости от ударения меняют основу своего словообразования с существительного на прилагательное: картИна или кАртина.
...
Рейтинг: 0 / 0
17.09.2016, 06:26
    #39310724
_гурД
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Склонение по падежам ФИО в Access
Я соглашусь с Санычем : русский язык очень гибкий, всегда можно выкрутиться именительным падежом.
Смотрится, соглашусь, иначе (хотя, смотря как сделать текст...), но в случае хотя бы с одной ошибкой
программного перевода в трорительный будет ярко выраженный ляп...
...
Рейтинг: 0 / 0
28.03.2017, 16:51
    #39428610
_КВВ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Склонение по падежам ФИО в Access
Да, склонением в творительном падеже, видимо, редко кто пользуется :)
Удивила обнаруженная ошибка при склонении своего же имени Вячеслав в творительном падеже. Решил проверить для интереса склонение все или большинство мужских и женских имен на русском языке. В результате обнаружились еще ошибки при склонении имен Генрих, Фридрих, Мартин, Мартын, Аглая, Фая и им подобным совсем нерусским, ведь, все равно в русском написании должны склоняться по правилам русского языка. Извиняюсь за файл по предыдущей ссылке, код чуть-чуть исправил: http://am.rusimport.ru/MSAccess/fattach.aspx?id=68061
...
Рейтинг: 0 / 0
29.03.2017, 12:18
    #39429106
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Склонение по падежам ФИО в Access
_КВВДа, склонением в творительном падеже, видимо, редко кто пользуется :)
Удивила обнаруженная ошибка при склонении своего же имени Вячеслав в творительном падеже. Решил проверить для интереса склонение все х или большинств а мужских и женских имен на русском языке. В результате обнаружились еще ошибки при склонении имен Генрих, Фридрих, Мартин, Мартын, Аглая, Фая и им подобны х совсем нерусски х , ведь, все равно в русском написании должны склоняться по правилам русского языка. Извиняюсь за файл по предыдущей ссылке, код чуть-чуть исправил: http://am.rusimport.ru/MSAccess/fattach.aspx?id=68061
Исправил ошибки в падежах.
...
Рейтинг: 0 / 0
29.03.2017, 13:45
    #39429224
гурД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Склонение по падежам ФИО в Access
Владимир Саныч_КВВДа, склонением в творительном падеже, видимо, редко кто пользуется :)
Удивила обнаруженная ошибка при склонении своего же имени Вячеслав в творительном падеже. Решил проверить для интереса склонение все х или большинств а мужских и женских имен на русском языке. В результате обнаружились еще ошибки при склонении имен Генрих, Фридрих, Мартин, Мартын, Аглая, Фая и им подобны х совсем нерусски х , ведь, все равно в русском написании должны склоняться по правилам русского языка. Извиняюсь за файл по предыдущей ссылке, код чуть-чуть исправил: http://am.rusimport.ru/MSAccess/fattach.aspx?id=68061
Исправил ошибки в падежах.
Программист программисту зануда...
...
Рейтинг: 0 / 0
30.03.2017, 00:25
    #39429608
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Склонение по падежам ФИО в Access
гурДПрограммист программисту зануда...
Главное, что здесь исправление падежей не оффтопик...
...
Рейтинг: 0 / 0
20.05.2017, 21:22
    #39456701
гурД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Склонение по падежам ФИО в Access
Владимир Санычздесь исправление падежей не оффтопик...
Исправил ошибки в падежах.
Решил проверить для интереса на склонение всех или большинства о мужских и женских имен на русском языке.
В результате обнаружились еще ошибки при склонении имен :
Генрих, Фридрих, Мартин, Мартын, Аглая, Фая и им подобны хе совсем нерусских е ведь
все равно в русском написании должны склоняться по правилам русского языка
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
04.07.2019, 17:33
    #39833979
uum
uum
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Склонение по падежам ФИО в Access
Столкнулся с правилом склонения корейских ФИО, заключающееся в том, что склоняется лишь последняя часть ФИО, к тому же с особенностями склонения ИМЕНИ, а не ФАМИЛИИ. Пришлось внести очередные некоторые исправления в код: http://am.rusimport.ru/MSAccess/fattach.aspx?id=68444
P.S. гурД был прав: в предыдущем посте, скоропостижно закрытом вместе с браузером силой мысли вошедшего начальника, был пропущен предлог "на", и запланированное окончание редактирования моей фразы с сайта Митина А.П. состояться не представилось возможным :))
...
Рейтинг: 0 / 0
05.07.2019, 10:14
    #39834210
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Склонение по падежам ФИО в Access
Sorry, ноuumСтолкнулся с правилом склонения корейских ФИО, заключающемся в том, что ....)))
...
Рейтинг: 0 / 0
05.07.2019, 10:59
    #39834243
uum
uum
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Склонение по падежам ФИО в Access
__Michelle, благодарю.
Не оправданий ради, но истины для...
Сначала напечатал, что обнаружил правило чуть ли не с претензией на открытие.
Но затем напечатал честно, что просто столкнулся с правилом. ;)
...
Рейтинг: 0 / 0
05.07.2019, 12:39
    #39834317
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Склонение по падежам ФИО в Access
Даже по этому топику,которому уже 5 лет, видно, что склонение фамилий дело неблагодарное и без огромных словарей или искусственного интеллекта задача неразрешима на 100%КВВКонечно, немного, процентов на 5 из частоты числа встречающихся имен и фамилий, по точности склонения осталось вне этого метода.
...
Рейтинг: 0 / 0
05.07.2019, 14:19
    #39834376
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Склонение по падежам ФИО в Access
uum__Michelle, благодарю.
Не оправданий ради, но истины для...
Сначала напечатал, что обнаружил правило чуть ли не с претензией на открытие.
Но затем напечатал честно, что просто столкнулся с правилом. ;)А я так и предположила, что сначала была одна мысль, потом она слегка поменялась, а рудимент остался.)))
...
Рейтинг: 0 / 0
05.07.2019, 14:38
    #39834385
uum
uum
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Склонение по падежам ФИО в Access
sdku, согласен со 100%. Но 99,999% и без искусственного интеллекта и без огромных словарей задача вполне разрешима, если добавить дополнительные поля условий(*) при вводе ФИО, а также вводить фамилию, имя и отчество - каждое в своем поле. В коде Валерия Крук склоняется сконкатенированное ФИО, что вызывает сложности(3).
* например:
1) страна принадлежности фамилии:
- тогда корейские, китайские и т.п. ФИО будут склоняться правильно и вне имеющейся сейчас в коде формуле компромиссного характера: ФИО = 4х4х4,
- французские, грузинские фамилии на -а, -я, одинаковые по написанию с др., не будут склоняться, а другие - будут,
- ...
2) словообразование фамилии от существительного или прилагательного или на какую гласную с конца падает ударение:
- будут склонять по разному фамилии СофтИна (Софтины, Софтине, Софтину, Софтиной) и СОфтина (Софтиной, Софтиной, Софтину, Софтиной),
-...
3) двойные фамилии (без тире: Де Фюнес, Эрл Грей, Ба Тоан) будут склоняться правильно, как и не будет ошибок в склонении ФИО, где нужно точно указывать что именно есть фамилия, что имя, а что отчество, например: Карлос Сесар Сальвадор Аранья Кастанеда.
4) поле, просто запрещающее склонять фамилию по причине, к примеру, недавно проведенной экспертизы, подтвердившей, что такая фамилия на сегодняшний день не склоняется,
словарь исключений для ФИО в таком случае вряд ли потребуется, ...
...
Рейтинг: 0 / 0
05.07.2019, 15:33
    #39834403
ldfanate
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Склонение по падежам ФИО в Access
я имел в виду юридическую оценку "наклеивания ярлыков - ваша фамилия эфиопская" когда оно Пушкинъ :)
Сложно наверно будет разработчику объяснять, что это не великоимперский шовинизм (с), а просто словарь исключений для автоматизации :)
...
Рейтинг: 0 / 0
05.07.2019, 15:56
    #39834414
uum
uum
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Склонение по падежам ФИО в Access
ldfanate, понятно, что Вы не поняли. Еще раз обращу Ваше внимание, что речь идет о том, что написание фамилии в И.П. может быть одним и тем же, а ее склонение - разным.
Простая идея состоит в том, что если фамилия не французская(корейская и т.п.), то поле с перечнем стран остается пустым и ФИО склоняется по "обычным" морфологическим признакам слов русского языка. Если же это поле заполнить, код программы склоняет фамилию по другим правилам, учитывающим введенное условие.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Склонение по падежам ФИО в Access / 25 сообщений из 119, страница 1 из 5
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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