Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Работа с dll в фокспро / 3 сообщений из 3, страница 1 из 1
19.07.2006, 01:37
    #33862544
Дикий Билл
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с dll в фокспро
Не могу разобраться как использовать dll в фокспро.
Решил попробовать с padeg.dll, наверняка уже делали такое.

В аксесе сделал так. Взял пример из их документации. Вставил в аксесс. Там все работает.

В модуле
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Private Declare Function FIOPadeg Lib "Padeg.dll" Alias "GetFIOPadegAS" _
  (ByVal pLastName As String, ByVal pFirstName As String, _
   ByVal pMiddleName As String, _
  ByVal nPadeg As Long, ByVal pResult As String, ByRef nLen As Long) As Integer

Public Function Padeg(ByVal pLastName As String, ByVal pFirstName As String, _
   ByVal pMiddleName 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 = FIOPadeg(pLastName, pFirstName, pMiddleName, nPadeg, tmpS, nLen)
  If RetVal = - 1  Then MsgBox "Недопустимое значение падежа - " & "(" & nPadeg & ")", , "Склонение ФИО"
  Padeg = Mid(tmpS,  1 , nLen)
End Function

Потом в запросе использовал
Код: plaintext
1.
2.
3.
4.
5.
SELECT Padeg([Ф],[И],[О], 2 ) AS Родительный,
       Padeg([Ф],[И],[О], 3 ) AS Дательный,
       Padeg([Ф],[И],[О], 4 ) AS Винительный,
       Padeg([Ф],[И],[О], 5 ) AS Творительный,
       Padeg([Ф],[И],[О], 6 ) AS Предложный
FROM ФИО;

Как подобное сделать на фоксе не пойму.
Делаю так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
? Padeg("Иванов","Иван","Иванович", 2 )

Declare Integer FIOPadeg In Padeg.dll As GetFIOPadegAS;
  (String pLastName,String pFirstName,String pMiddleName,;
  Long nPadeg,String pResult,Long @ nLen)
   
Function Padeg
LPARAMETERS pLastName,pFirstName,pMiddleName,nPadeg
Local tmpS,nLen,RetVal
  nLen =  255 
  tmpS = replicate(" ",nLen)
  RetVal = FIOPadeg(pLastName, pFirstName, pMiddleName, nPadeg, tmpS, nLen)
  RETURN substr(tmpS,  1 , nLen)
End Function
Пишет "Too many arguments" на строку
RetVal = FIOPadeg(pLastName, pFirstName, pMiddleName, nPadeg, tmpS, nLen)
Вернее сначала так ругалась. Теперь ругается File "FIOPadeg" does not exists
Подскажите пожалуйста. Какая-то невнятная работа с дллками в фоксе.
...
Рейтинг: 0 / 0
19.07.2006, 02:52
    #33862576
Дикий Билл
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с dll в фокспро
Пока проблему решил, сделав в делфях комобъект

r=CreateObject("PadegCom.FIOPadeg")
f="Иванов"
i="Иван"
o="Иванович"
? r.padegfio(f,i,o,2, 50);

Но хотолось бы узнать, что я делал не так. Предсоит работать на фоксе. вот готовлюсь
...
Рейтинг: 0 / 0
19.07.2006, 06:33
    #33862617
Дикий Билл
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с dll в фокспро
Все, уже помогли. Тему можно закрыть. Извините.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Работа с dll в фокспро / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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