Помогите с прототипом функции (Padeg.dll)
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1411
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
- Контактная информация:
Помогите с прототипом функции (Padeg.dll)
Год назад уже задавал этот вопрос http://forum.clarionlife.net/phpbb/view ... 005#p23005 но руки не дошли попробовать, сейчас понадобилось, но ничего не получается, всегда выдает ошибку -5 на недостаточный размер буфера. Перепробовал различные комбинации, но видимо чего-то не хватает или не так делаю. В аттаче проект (6.3 но думаю везде откроется), библиотека подключена
Описание функции http://www.delphikingdom.com/asp/viewit ... 4981164050
Описание функции http://www.delphikingdom.com/asp/viewit ... 4981164050
- Вложения
-
- padeg.zip
- (63 КБ) 141 скачивание
- Admin
- Администратор
- Сообщения: 4010
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 53 раза
- Поблагодарили: 33 раза
- Контактная информация:
Помогите с прототипом функции (Padeg.dll)
Там все что то мутно. Забыл уже как с дельфями PСhar пересылать...
Вот так частично получилось. Отчество не возвращает. Может в группе все таки что то не то.
Вот так частично получилось. Отчество не возвращает. Может в группе все таки что то не то.
Код: Выделить всё
program
PartsFIO GROUP,TYPE
pLastName LONG
pFirstName LONG
pMiddleName LONG
nLastName LONG
nFirstName LONG
nMiddleName LONG
pLastName_ CSTRING(101)
pFirstName_ CSTRING(101)
pMiddleName_ CSTRING(101)
END
map
MODULE('Padeg.dll')
PadegGetSex(*CSTRING),LONG,C,RAW,NAME('GetSex')
PadegGetFIOParts(*CSTRING,*PartsFIO),LONG,PASCAL,RAW,NAME('GetFIOParts')
END
end
FIO CSTRING(256)
Part GROUP(PartsFIO)
END
code
FIO='Пупкин Василий Иванович'
Part.nLastName = 100
Part.nFirstName = 100
Part.nMiddleName = 100
Part.pLastName_ = ALL('<0>',100)
Part.pFirstName_ = ALL('<0>',100)
Part.pMiddleName_ = ALL('<0>',100)
Part.pLastName=ADDRESS(Part.pLastName_)
Part.pFirstName=ADDRESS(Part.pFirstName_)
Part.pMiddleName=ADDRESS(Part.pMiddleName_)
Err# = PadegGetFIOParts(FIO, Part)
MESSAGE(CLIP(Part.pLastName_)&' '&CLIP(Part.pFirstName_)&' '&CLIP(Part.pMiddleName_))
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
- Admin
- Администратор
- Сообщения: 4010
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 53 раза
- Поблагодарили: 33 раза
- Контактная информация:
Помогите с прототипом функции (Padeg.dll)
Хехе... и в первый раз я отвечал 
В тот раз на коленке написал не проверяя

В тот раз на коленке написал не проверяя
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
- Admin
- Администратор
- Сообщения: 4010
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 53 раза
- Поблагодарили: 33 раза
- Контактная информация:
Помогите с прототипом функции (Padeg.dll)
Завтра еще гляну. Первый час ночи. И в Clarion 10 выводит писать. С6 не запускается на x64 

Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1411
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
- Контактная информация:
Помогите с прототипом функции (Padeg.dll)
Оу, работает
Даже с отчеством
Спасибо огромное!
Переменные строковые только за группу надо вынести
Даже с отчеством
Спасибо огромное!
Переменные строковые только за группу надо вынести
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1411
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
- Контактная информация:
Помогите с прототипом функции (Padeg.dll)
На выходе оказалось что функция толком и не работает )) Т.е. она делит на части, но только если ФИО записано в правильном порядке, а такое и без функции сделать много ума не надо ))
- Игорь Столяров
- Ветеран движения
- Сообщения: 8028
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 96 раз
Помогите с прототипом функции (Padeg.dll)
На Dadata.ru есть такой запрос ... Или через сервис не интересно ?RaFaeL писал(а):На выходе оказалось что функция толком и не работает
Make Clarion Great Again ! 
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1411
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
- Контактная информация:
Помогите с прототипом функции (Padeg.dll)
В курсе, но хотел сделать то же самое на основе локальной библиотеки. Можно, в принципе, оба способа прикрутить
- Admin
- Администратор
- Сообщения: 4010
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 53 раза
- Поблагодарили: 33 раза
- Контактная информация:
Помогите с прототипом функции (Padeg.dll)
Да вроде пробовал не помогало. Может то что ночь и тупил.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
-
- ✯ Ветеран ✯
- Сообщения: 1038
- Зарегистрирован: 08 Июль 2005, 6:48
- Откуда: Россия
- Поблагодарили: 1 раз
Помогите с прототипом функции (Padeg.dll)
? - на 64 гоняю С6 на Oracle VirtualBox, там плагин доставить и все видно - диски/флешки и проч.Admin писал(а):Завтра еще гляну. Первый час ночи. И в Clarion 10 выводит писать. С6 не запускается на x64
ps - конечно на VirtualBox XP стоит

Помогите с прототипом функции (Padeg.dll)
Код: Выделить всё
program
pLastName CSTRING(101)
pFirstName CSTRING(101)
pMiddleName CSTRING(101)
PartsFIO GROUP,TYPE
apLastName LONG
apFirstName LONG
apMiddleName LONG
nLastName LONG
nFirstName LONG
nMiddleName LONG
END
map
MODULE('Padeg.dll')
PadegGetSex(*CSTRING),LONG,PASCAL,RAW,NAME('GetSex')
PadegGetFIOParts(*CSTRING,*PartsFIO),LONG,PASCAL,RAW,NAME('GetFIOParts')
END
end
FIO CSTRING(256)
Part GROUP(PartsFIO)
END
code
FIO='Пупкин Василий Иванович'
stop(PadegGetSex(FIO)) !Просто проверяем что библиотека работает
Part.nLastName = 100
Part.nFirstName = 100
Part.nMiddleName = 100
pLastName = all('<0>',100)
pFirstName = all('<0>',100)
pMiddleName = all('<0>',100)
Part.apLastName = address(pLastName)
Part.apFirstName = address(pFirstName)
Part.apMiddleName = address(pMiddleName)
Err# = PadegGetFIOParts(FIO, Part)
stop(err#)
stop(clip(pLastName) &'/'& clip(pFirstName) &'/'& clip(pMiddleName))
L# += 1
- Admin
- Администратор
- Сообщения: 4010
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 53 раза
- Поблагодарили: 33 раза
- Контактная информация:
Помогите с прототипом функции (Padeg.dll)
Не это не нравится. Так то 3 компа дома. Есть где поюзать C6
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса