Как взять инициалы из имени?

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
ryurik
Сообщения: 2
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Тюмень Тюмбит

Как взять инициалы из имени?

Сообщение ryurik »

Требуется из стандартного ФИО
получить фамилию с инициалами.
Пример: "Иванов Иван Иванович" -> "Иванов И.И."
Нехотелось бы изобретать велосипед.
Есть ли в Галактике стандартные средства для этого или кто как решал эту проблему?
ryurik
Сообщения: 2
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Тюмень Тюмбит

Re: Как взять инициалы из имени?

Сообщение ryurik »

Ламерство.
Есть стандартная функция:

//фамилия и инициалы
function GetSurnameWithInitials(string): string; external;
Sanya
Постоянный гость
Сообщения: 92
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

Re: Как взять инициалы из имени?

Сообщение Sanya »

s1:=trim(fio)
a1:=instr(‘ ’,fio)
fam:=substr(s1,1, a1-1)
s2:=substr(s1,a1+1,length(s1))
a1:=instr(‘ ’,s2)
ima:=substr(s2,1, a1-1)
s2:=substr(s2,a1+1, length(s2))
a1:=instr(‘ ’,s2)
oth:= substr(s2,1, a1-1)
Вот фамилия =fam
имя=ima
отчество=oth
Если надо резать, то
fam+' '+substr(ima,1,1)+'.'+substr(oth,1,1)+'.'
Наверное так :) вроде нигде не ошибся...
Serrenium
Посетитель
Сообщения: 46
Зарегистрирован: 05 июл 2005, 18:06
Откуда: Корпорация Галактика
Контактная информация:

Сообщение Serrenium »

Вот так вот еще можно:

Код: Выделить всё

.function initfio (fio:string):string;
begin 
if pos('.',fio)=0 
initfio:= substr(fio,1,pos(' ',fio)-1) + ‘ ‘ +substr(fio,pos(' ',fio)+1,1)+'.'+substr(substr(fio,pos(' ',fio) + 1, length(fio) - pos(' ',fio)+1), pos(' ',substr(fio,pos(' ',fio)+1,length(fio)-pos(' ',fio)+1))+1,1)+'. ' 
else initfio:=fio; 
end.
из Фамилия Имя Отчество получаем: Фамилия И.О.
Vik
Местный житель
Сообщения: 370
Зарегистрирован: 28 сен 2006, 15:43
Откуда: Санкт-Петербург
Контактная информация:

Re: Как взять инициалы из имени?

Сообщение Vik »

ryurik писал(а):Ламерство.
Есть стандартная функция:

//фамилия и инициалы
function GetSurnameWithInitials(string): string; external;
Я так полагаю, если функция стандартная, то хотя бы в хелпе должна быть описана. Что-то этой "стандартной" функции я не нашел.

Можно еще использовать объектный фейс ObjStrFunc из StrFunc.vih (если есть конечно) - в нем много функций для работы с ФИО.
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Сообщение Алексей »

Функция действительно есть, паскалевская, и работает :)
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

в vipprogr.chm описаны только системные функций. А то что сделал в модуле для себя конкретный товарищ можно поискать в описании конкретного модуля - типа TxoSetkau вроде была в txo.pdf, по табелю screw в опыт выкладывал и так далее, тот же вывод в Excel.
Пшите в ТП за составлением доки на такие функции - там много чего интересного. Раньше их описание лежало в extfun.res.
Ответить