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

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

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2010, 12:38   #1
LAnLorD
Пользователь
 
Регистрация: 13.11.2008
Сообщений: 13
По умолчанию Не могу справиться с Padeg.dll

Никак не могу справиться с библиотекой Padeg.dll
http://www.delphikingdom.com/asp/vie...?catalogid=412

В комплекте библиотеки присутствует пример для VBA Excel
в котором реализовано обращение к библиотеке для склонения ФИО
и указано, что "Обращение к другим функциям выполняется аналогично".

Как ни бился сделать не смог (((

Если не трудно помогите пожалуйста
Интересуют функции:
GetAppointmentPadeg
GetFullAppointmentPadeg
GetOfficePadeg
LAnLorD вне форума Ответить с цитированием
Старый 17.11.2010, 09:05   #2
LAnLorD
Пользователь
 
Регистрация: 13.11.2008
Сообщений: 13
По умолчанию

Неужели никто не знаком с библиотекой?
LAnLorD вне форума Ответить с цитированием
Старый 17.11.2010, 09:33   #3
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

А в чем, собственно, проблема?
У Вас эта библиотека установлена и зарегистрирована?
Посмотрите во вложении пример использования. Там же есть авторский doc-файл с инструкциями по применению.

P.S. На Win7 не проверял.
Вложения
Тип файла: rar Падеж.rar (50.9 Кб, 148 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 17.11.2010, 09:48   #4
LAnLorD
Пользователь
 
Регистрация: 13.11.2008
Сообщений: 13
По умолчанию

Проблема в том что со склонением ФИО все понятно и работает, но не получается "по аналогии" написать обращение к функциям, выполняющие склонение должностей и подразделений. А именно для функций:
GetAppointmentPadeg
GetFullAppointmentPadeg
GetOfficePadeg

Проще говоря как это:

Код:
' Функция склонения ФИО с автоматическим определением пола по отчеству
' Параметры: pFIO    - фамилия, имя, отчество
'            nPadeg  - падеж (допустимые значения: 1..6)
'            pResult - буфер результата
'            nLen    - размер буфера (после преобразования - длина результата)
' Значение:  0 - успешное завершение
'           -1 - недопустимое значение падежа
'           -3 - результат не поместился в буфере

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

' Функция преобразования cFIO в падеж nPadeg
Public Function MakePadeg(ByVal cFIO As String, ByVal nPadeg As Long) As String
Dim tmpS As String
Dim nLen As Long
Dim RetVal As Integer
  If Len(cFIO) = 1 Then Exit Function
  nLen = 255
  tmpS = String(nLen, 0)
  RetVal = GetPadeg(cFIO, nPadeg, tmpS, nLen)
  If RetVal = -1 Then MsgBox "Недопустимое значение падежа - " & "(" & nPadeg & ")", , "Склонение ФИО"
  MakePadeg = Mid(tmpS, 1, nLen)
End Function


' Макросы преобразования ФИО в активной ячейке в соответствующий падеж

Public Sub p1Именительный()
  Cells(ActiveCell.Row, ActiveCell.Column) = Nominative(ActiveCell)
End Sub
Преобразовать для реализации склонения должности.
LAnLorD вне форума Ответить с цитированием
Старый 17.11.2010, 10:25   #5
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Вы инструкцию прочитали?
Давайте так:
Прикрепите файл, в 1-м столбце которого - исходные данные, во 2-м - те, которые Вы хотите получить. тогда будем разбираться.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 17.11.2010, 10:40   #6
LAnLorD
Пользователь
 
Регистрация: 13.11.2008
Сообщений: 13
По умолчанию

Инструкцию читаю уже неделю подряд, но каменный цветок никак не выходит.

1-я строчка прекрасно делается макросом склонения
2-я и является проблемой
Вложения
Тип файла: rar padeg.rar (10.4 Кб, 81 просмотров)

Последний раз редактировалось LAnLorD; 17.11.2010 в 10:42.
LAnLorD вне форума Ответить с цитированием
Старый 17.11.2010, 12:12   #7
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

посмотрите вложение. Будьте внимательны: там в ячейках "B1" и "B2" - разные функции.
Вложения
Тип файла: rar padeg_2.rar (6.6 Кб, 157 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 17.11.2010, 12:27   #8
LAnLorD
Пользователь
 
Регистрация: 13.11.2008
Сообщений: 13
По умолчанию

Гениально!

Огромное спасибо. Работает просто замечательно.
Пара вопросов по вашему методу реализации: не поскажете как прописать справку по новой функции и сделать так чтобы она искалась по поиску функций?
LAnLorD вне форума Ответить с цитированием
Старый 17.11.2010, 12:39   #9
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Написать справку по пользовательской функции не так уж просто. Сам я этого не делал. А что касается поиска, то я не совсем понял о чем речь. Эти функции есть в списке функций. Воспользуйтесь либо "Полным алфавитным списком", либо просто войдите в категорию "Определенные пользователем".
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 17.11.2010, 12:46   #10
LAnLorD
Пользователь
 
Регистрация: 13.11.2008
Сообщений: 13
По умолчанию

Поиск в том смысле, что если в поиск функций вписать "Падеж", то получим "Пожалуйста, перефразируйте свой вопрос."

Таким образом новую функцию можно лишь найти по перечню, но не через поиск.

Но это не столь важно - главное что все работает. Еще раз Спасибо.
LAnLorD вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программирование алгоритмов с использованием подпрограмм - функций, не могу справиться с ошибками Positive-z Общие вопросы C/C++ 4 13.06.2010 17:25
Не найдена точка входа в DLL, не могу разобраться Ozerich Qt и кроссплатформенное программирование С/С++ 4 21.04.2010 19:46
Помогите справиться с задачей hunter05 Microsoft Office Excel 4 24.12.2009 15:51
Матрица.TurboPascal. Не могу справиться Анюта) Помощь студентам 5 05.12.2009 16:07
Просто, но справиться не могу. Небесный Общие вопросы Delphi 1 05.05.2008 11:32