 |
Возможности (кратко):
- Перевод ФИО (именительный падеж) в указанный падеж по номеру падежа и полу.
- Перевод строки содержащей ФИО в указанный падеж по номеру падежа и полу.
- Перевод строки из любого падежа в именительный без указания пола.
- Возможно автоматическое определение пола.
- Работа со словарем исключений.
Более подробно смотрите вот здесь
здесь
Вот текст на 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)
Он же в архиве...
|
|