powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Склонение по падежам ФИО в Access
25 сообщений из 119, страница 1 из 5
Склонение по падежам ФИО в Access
    #38658050
В 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
Склонение по падежам ФИО в Access
    #38658105
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сказано жеШайтаниди в ветку по Access'у

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

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

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

Вспомнил )))
Надо скопировать 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
Склонение по падежам ФИО в Access
    #38668763
Выражаю свою благодарность, всё заработало, но сейчас встала проблема по использзованию функции GetAppointmentPadeg (склонение должности), по аналогии сделать не получается, буду рад любому совету.
...
Рейтинг: 0 / 0
Склонение по падежам ФИО в Access
    #38670348
PMVolga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей_Лосев,
У меня вот такая функция используется:

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

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


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