FoxPro Club Главная

Конференция Решения Фотоальбом Сайт М.Дроздова Статьи Файловый архив Книга Visual FoxPro 9.0 Русский Help для Visual FoxPro
Пользователей: 9233
Вход
Перевод ФИО в указанный падеж - Padeg.DLL с www.DelphiKingdom.ru

Использование указанной библиотеки в VFP


 
Прислал: Петров Андрей   Категория: Инструменты разработчика


Возможности (кратко):
  1. Перевод ФИО (именительный падеж) в указанный падеж по номеру падежа и полу.
  2. Перевод строки содержащей ФИО в указанный падеж по номеру падежа и полу.
  3. Перевод строки из любого падежа в именительный без указания пола.
  4. Возможно автоматическое определение пола.
  5. Работа со словарем исключений.
Более подробно смотрите вот здесь здесь
Вот текст на VFP:

*     _______________________________________Петров А.О.__
*    |  Преобразование ФИО v2.0				  |
*    |  Адаптация всех функций под Visual FoxPRO	  |
*    |  Программа FoxPRO.prg				  |
*    |____________________________________________________|
*    |  Дата изменения: 12.02.04,   написана  11.02.04    |
*    |____________________________________________________|


#DEFINE MAX_FIO_LEN 100
PRIVATE f,l,s
m.f='Петров'
m.l='Андрей'
m.s='Олегович'

DECLARE integer GetFIOPadeg IN padeg.dll;
	string pFirstName,;
	string pLastName,;
	string pMiddleName,;
	integer bSex,;
	integer nPadeg,;
	string @pResult,;
	integer @nLen
	
DECLARE integer GetFIOPadegAS IN padeg.dll;
	string pFirstName,;
	string plastName,;
	string pMiddleName,;
	integer nPadeg,;
	string @pResult,;
	integer @nLen

DECLARE integer GetFIOPadegFS IN padeg.dll;
	string pFIO,;
	integer bSex,;
	integer nPadeg,;
	string @pResult,;
	integer @nLen

DECLARE integer GetFIOPadegFSAS IN padeg.dll;
	string pFIO,;
	integer nPadeg,;
	string @pResult,;
	integer @nLen
	
DECLARE integer GetIFPadeg IN padeg.dll;
	string pFirstName,;
	string pLastName,;
	integer bSex,;
	integer nPadeg,;
	string @pResult,;
	integer @nLen

DECLARE integer GetIFPadegFS IN padeg.dll;
	string pIF,;
	integer bSex,;
	integer nPadeg,;
	string @pResult,;
	integer @nLen
	
DECLARE integer GetNominativePadeg IN padeg.dll;
	string pFIO,;
	string @pResult,;
	integer @nLen

DECLARE integer UpdateExceptions IN padeg.dll;

*  ============================== КОД ЗДЕСЬ =================================
PRIVATE _l

CLEAR
FOR m.x=1 TO 6
	m._l=MAX_FIO_LEN
	m.str=SPACE(m._l)
	getfiopadeg(m.f,m.l,m.s,1,m.x,@str,@_l)
	? 'Номер падежа = ',x,' ФИО = ',SUBSTR(str,1,m._l)
ENDFOR

? 'GetFIO			= ',getfio(m.f,m.l,m.s,ASC('м'),2)
? 'GetFIOFromStr		= ',getfiofromstr(f+' '+l+' '+s,ASC('м'),2)
? 'GetIF			= ',getif(m.f,m.l,ASC('м'),2)
? 'GetIFFromStr		= ',getiffromstr(m.f+' '+m.l,ASC('м'),2)
? 'GetNominative		= ',getnominative(getfio(m.f,m.l,m.s,ASC('м'),2))

? 'UpdateExceptions = ',UpdateExceptions()#0
*  ==========================================================================

FUNCTION GetFIO
LPARAMETERS pFirstName, plastName, pMiddleName, bSex, nPadeg
PRIVATE result, l
m.l=MAX_FIO_LEN
m.result=REPLICATE(CHR(0),m.l)
=getfiopadeg(pFirstName, plastName, pMiddleName, bSex, nPadeg, @result, @l)
RETURN SUBSTR(m.result,1,m.l)

FUNCTION GetFIOFromStr
LPARAMETERS pFIO, bSex, nPadeg
PRIVATE result, l
m.l=MAX_FIO_LEN
m.result=REPLICATE(CHR(0),m.l)
=getFIOPadegFS(pFIO, bSex, nPadeg, @result, @l)
RETURN SUBSTR(m.result,1,m.l)

FUNCTION GetIF
LPARAMETERS plastName, pFirstName, bSex, nPadeg
PRIVATE result, l
m.l=MAX_FIO_LEN
m.result=REPLICATE(CHR(0),m.l)
=GetIFpadeg(plastName, pFirstName, bSex, nPadeg, @result, @l)
RETURN SUBSTR(m.result,1,m.l)

FUNCTION GetIFFromStr
LPARAMETERS pIF, bSex, nPadeg
PRIVATE result, l
m.l=MAX_FIO_LEN
m.result=REPLICATE(CHR(0),m.l)
=getIFPadegFS(pIF, bSex, nPadeg, @result, @l)
RETURN SUBSTR(m.result,1,m.l)

FUNCTION GetNominative
LPARAMETERS pFIO
PRIVATE result, l
m.l=MAX_FIO_LEN
m.result=REPLICATE(CHR(0),m.l)
=getnominativepadeg(pFIO, @result, @l)
RETURN SUBSTR(m.result,1,m.l)

Он же в архиве...
 
Сделайте оценку этого решения Плохо Удовлетворительно Так себе Хорошо Отлично Текущая оценка: (4.651) Вложение [0.98]kb
Дополнения пользователей
Перевод ФИО в указанный падеж - Padeg.DLL с www.DelphiKingdom.ru
[+][?]
Пирожков Вадим
14.02.04 11:11:54

Что-то я этой dll'ки там не нашел
Моджно ли намылить piva@acmetelecom.ru
Андрей
14.02.04 12:05:33

Значит плохо смотрел. Вот ссылка на файл:http://delphi.mtu-net.ru/zip/padeg.zip
[Дополнить]



© 2000-2017 Fox Club 
При размещении любых материалов с сайта на других ресурсах- прямая ссылка на www.foxclub.ru обязательна
Яндекс.Метрика