Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Readme.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
377.86 Кб
Скачать

5.2.Функции, выполняющие склонение фио, должностей и подразделений

Данные функции, имеют тип возвращаемого значения Integer и, если не оговорено особо, своим значением передают результат выполнения операции преобразования:

0 – успешное завершение;

-1 – недопустимое значение падежа;

-2 – недопустимое значение рода;

-3 – размер буфера недостаточен для размещения результата преобразования ФИО.

Здесь значение 0 не означает, что преобразование выполнено грамматически правильно, а лишь показывает, что функция отработала без ошибок.

Необходимо отметить, что поскольку параметр рода (bSex) для этих функций – логический (True – мужской и False – женский), то значение –2 никогда не будет возвращено в виде результата выполнения и оставлено только для совместимости с предыдущими версиями.

Небольшое замечание о параметре nLen, которым в функции склонения передается объем буфера, отведенного под результат, а из функций возвращается число символов (байт для версии ниже 4.0), записанных в буфер. В настоящей версии программы выполняется проверка этого параметра и на нулевое значение. Это, пожалуй, единственное обстоятельство, которое может повлиять на совместимость с первой версией программы, т.к. в ее примерах параметр nLen инициализировался по умолчанию нулем и с этим значением передавался в библиотечные функции. Значение этого параметра после выполнения преобразования ФИО равно длине результата преобразования при успешном завершении операции. Если размер преобразованного ФИО превышает размер отведенного буфера, значение параметра равно размеру буфера (при этом результат преобразования усекается до размера буфера), и нулю – если задано ошибочное значение падежа.

5.2.1.GetFIOPadeg

function GetFIOPadeg(pLastName, pFirstName, pMiddleName: PChar;

bSex: Boolean; nPadeg: LongInt; pResult: PChar;

var nLen: LongInt): Integer; stdcall; export;

Помещает в буфер (pResult) размера (nLen) результат склонения фамилии (pLastName), имени (pFirstName) и отчества (pMiddleName) рода (bSex) в заданный падеж (nPadeg). Значение функции – результат выполнения операции преобразования.

Данная функция является основной в Библиотеке и наиболее универсальной. В качестве параметров ей необходимо передать ФИО в виде трех строк (каждая из которых может быть пустой), явно указанный род, требуемое значение падежа, указатель на буфер результата и размер этого буфера (после преобразования этим параметром возвращается реальный размер результата). При таких условиях этой функцией можно склонять ФИО и его составляющие в любых комбинациях. Корректно обрабатываются фамилии с инициалами (Сидоров И.П.) – склоняться будет только фамилия (у Сидорова И.П.). Допускается использование инициалов, состоящих более чем из одного символа (Иванов Вс.Никод.). Кроме ФИО славянского типа эта функция может выполнять склонение корейских, китайских и им подобным имен. При этом первое слово в таком имени соответствует фамилии, второе – имени и третье – отчеству в наших терминах. Другими словами, при склонении Иванов Иван Иванович и Ли Си Цын не требуется перестановка составляющих ФИО. Поскольку имена подобного вида иногда записывают двумя словами (Ли Сицын), то при вызове функции склонения для такой формы записи необходимо первым параметром передать пустую строку. В подавляющем большинстве случаев эта функция пригодна и для склонения ФИО, записанного в формате "Фамилия Имя [Имя]" (Кеннеди Джон [Фиджеральд]).

5.2.2.GetFIOPadegAS

function GetFIOPadegAS(pLastName, pFirstName, pMiddleName: PChar;

nPadeg: LongInt; pResult: PChar;

var nLen: LongInt): Integer; stdcall; export;

Помещает в буфер (pResult) размера (nLen) результат склонения фамилии (pLastName), имени (pFirstName) и отчества (pMiddleName) в заданный падеж (nPadeg) с автоматическим определением рода. Значение функции – результат выполнения операции преобразования.

Функция предназначена для склонения ФИО, род которых неизвестен. Определение рода осуществляется по окончанию отчества. Корректно обрабатываются отчества, имеющие признак рода: Оглы (сын) или Кызы (дочь). Признак рода может записываться через дефис (Аскер-Оглы) или пробел (Аскер Оглы).

5.2.3.GetFIOPadegFS

function GetFIOPadegFS(pFIO: PChar; bSex: Boolean; nPadeg: LongInt;

pResult: PChar; var nLen: LongInt):Integer; stdcall;

export;

Помещает в буфер (pResult) размера (nLen) результат склонения фамилии имени и отчества, записанных одной строкой (pFIO), рода (bSex) в заданный падеж (nPadeg). Значение функции – результат выполнения операции преобразования.

Функция выполняет преобразование ФИО, заданного одной строкой и требует явного указания рода. Порядок следования составляющих ФИО в строке параметра – фамилия, имя, отчество. Эта функция, как и GetFIOPadeg, тоже допускает использование инициалов и может выполнять преобразование имен типа китайских. Для корректной работы функции необходимо наличие трех компонент ФИО (имена китайского типа допускается задавать двумя словами). В ряде случаев правильно обрабатываются ФИО, записанные в формате "Фамилия Имя [Имя]".

5.2.4.GetFIOPadegFSAS

function GetFIOPadegFSAS(pFIO: PChar; nPadeg: LongInt; pResult: PChar;

var nLen: LongInt):Integer; stdcall; export;

Помещает в буфер (pResult) размера (nLen) результат склонения фамилии имени и отчества, записанных одной строкой (pFIO), в заданный падеж (nPadeg) с автоматическим определением рода. Значение функции – результат выполнения операции преобразования.

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

5.2.5.GetIFPadeg

function GetIFPadeg(pFirstName, pLastName: PChar; bSex: Boolean;

nPadeg: LongInt; pResult: PChar;

var nLen: LongInt): Integer; stdcall; export;

Помещает в буфер (pResult) размера (nLen) результат склонения имени (pFirstName) и фамилии (pLastName) рода (bSex) в заданный падеж (nPadeg). Значение функции – результат выполнения операции преобразования.

Функция предназначена для склонения пар "Имя Фамилия" (Марк Твен) и требует явного указания рода. Эта функция также пригодна для склонения имен собственных типа Джон Фиджеральд Кеннеди. В этом случае Джон Фиджеральд следует передавать одним параметром, как имя. Разделитель слов в параметре – пробел.

5.2.6.GetIFPadegFS

function GetIFPadegFS(pIF: PChar; bSex: Boolean; nPadeg: LongInt;

pResult: PChar; var nLen: LongInt): Integer;

stdcall; export;

Помещает в буфер (pResult) размера (nLen) результат склонения имени и фамилии (pIF), записанных одной строкой, рода (bSex) в указанный падеж (nPadeg). Значение функции – результат выполнения операции преобразования.

Функция предназначена для склонения пар "Имя Фамилия" (Марк Твен), записанных одной строкой, и требует явного указания рода. Эта функция также пригодна для склонения имен собственных типа Джон Фиджеральд Кеннеди. При использовании данной функции следует иметь в виду, что фамилией считается последнее слово параметра, а все предыдущие – именами и склоняются соответствующим образом.

5.2.7.GetNominativePadeg

function GetNominativePadeg(pFIO, pResult: PChar; var nLen:

LongInt): Integer; stdcall; export;

Помещает в буфер (pResult) размера (nLen) восстановленный именительный падеж для ФИО, записанного одной строкой (pFIO) в произвольном падеже. Значение функции – результат выполнения операции преобразования.

Функция выполняет восстановление именительного падежа для ФИО, заданного в произвольном падеже в формате "Фамилия Имя Отчество". Значение, возвращаемое функцией, может быть равно 0 или -3. Более подробно о восстановлении именительного падежа сказано в разделе "Восстановление именительного падежа".

5.2.8.GetAppointmentPadeg

function GetAppointmentPadeg(pAppointment: PChar; nPadeg: LongInt;

pResult: PChar; var nLen: LongInt): Integer;

stdcall; export;

Помещает в буфер (pResult) размера (nLen) результат склонения наименования должности (pAppointment) в заданный падеж (nPadeg). Значение функции – результат выполнения операции преобразования.

Функция предназначена для склонения наименования должностей, записанных одной строкой. К сожалению, функция не позволяет выполнить склонение должностей типа: "Директор департамента – главный бухгалтер", являющихся, по сути, объединением двух должностей. В подобных случаях можно посоветовать выделить из исходной строки подстроки, соответствующие каждой должности, и передать их в качестве параметра приведенной функции. А после выполнения преобразования объединить результаты.

5.2.9.GetFullAppointmentPadeg

function GetFullAppointmentPadeg(pAppointment, pOffice: PChar;

nPadeg: LongInt; pResult: PChar;

var nLen: LongInt): Integer; stdcall;

export;

Помещает в буфер (pResult) размера (nLen) результат объдинения наименований должности (Appointment) и подразделения (Office) в падеже (nPadeg). Значение функции – результат выполнения операции преобразования.

Функция позволяет получить полное наименование должности и выполнить его преобразование в заданный падеж. При объединении удаляются повторяющиеся слова при их наличии. Например: должность – Начальник цеха; подразделение – Цех нестандартного оборудования; результат – Начальник цеха нестандартного оборудования. Все, сказанное выше в отношении составных должностей, справедливо и для данной функции.

В процессе эксплуатации выяснилось что, возможно склонение документов если использовать наименование документа (напр. "постановление") - как должность, а организации. (напр. Совет Министров) как подразделение1:

Именительный (кто/что)

Постановление Совета Министров

Родительный (кого/чего нет):

Постановления Совета Министров

Дательный (кому/чему дать):

Постановлению Совета Министров

Винительный (кого/что вижу):

Постановление Совета Министров

Творительный (кем/чем горжусь):

Постановлением Совета Министров

Предложный (о ком/о чем мечтаю):

Постановлении Совета Министров

5.2.10.GetOfficePadeg

function GetOfficePadeg(pOffice: PChar; nPadeg: LongInt; pResult: PChar;

var nLen: LongInt): Integer; stdcall; export;

Помещает в буфер (pResult) размера (nLen) результат склонения наименования подразделения (pSrc) в заданный падеж (nPadeg). Значение функции – результат выполнения операции преобразования.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]