|
Склонение ФИО | ☑ | ||
|---|---|---|---|---|
|
0
kugelfangg
04.11.09
✎
11:39
|
Здавствуйте, подскажите пожалуйста каким образом из ФИО-именительный можно сделать ФИО-родительный падеж.
|
|||
|
1
Михей
04.11.09
✎
11:40
|
есть приблуда на ИТС для склонения
|
|||
|
2
kugelfangg
04.11.09
✎
11:40
|
а как она называется?
|
|||
|
3
kugelfangg
04.11.09
✎
11:50
|
Подскажите пожалуйста как называется эта приблуда на "ИТС" или где ее еще можно взять.
|
|||
|
4
ZyXEL
04.11.09
✎
11:53
|
NameDecl.dll
|
|||
|
5
skunk
04.11.09
✎
11:55
|
||||
|
7
kugelfangg
04.11.09
✎
12:03
|
(6) почему?
|
|||
|
8
skunk
04.11.09
✎
12:05
|
(7)криво склоняет
|
|||
|
9
zak555
04.11.09
✎
12:06
|
склоните мне фамилию метро
|
|||
|
10
kugelfangg
04.11.09
✎
12:07
|
она не склоняется.
|
|||
|
11
kugelfangg
04.11.09
✎
12:16
|
(5)Этож для семерки.
100% есть готовый вариант на 8.1, подскажите пожалуйста, где его взять. |
|||
|
12
ZyXEL
04.11.09
✎
12:24
|
(11) а что пару строк переписать уже никак?
|
|||
|
13
фросия
04.11.09
✎
12:24
|
(11) а из 7го сделать для 81 нельзя? вот ленивые!
|
|||
|
14
skunk
04.11.09
✎
12:30
|
//*******************************************
// strDeclineAdd(strName, intCase = 2, intSex = "*") // // Параметры: // strName - Строка. Фамилия, Имя или Отчество. // intCase - Число. В каком падеже склонять. // 0 - ??? // 2 - родительный(нет кого?). // 3 - дательный(кому?). // 4 - винительный(вижу кого?). // 5 - творительный(кем?). // 6 - предложный(о ком?). // Параметр необязателен. // По умолчанию - 2. // intSex - Число. Пол. // 1 - мужской. // 2 - женский. // 3 - средний ;)). // 4 - если склоняем профессию. // Параметр необязателен. // По умолчанию - 3. // // Возвращаемое значение: // Строка. Фамилию, Имя или Отчество // в нужном падеже. // // Описание: // Производит склонение по падежам // Фамилии, Имени или Отчества. // function strDeclineAdd(strName, intCase = 2, intSex = "*") strTemp1 = right(strName, 2); strTemp2 = ?(strTemp1 = "ия", 7, find(".чайяь", right(strTemp1, 1))); strTemp3 = strlen(strName) - 2; return ?(intCase = 1, strName, ?(strTemp2 > 2, left(strName, strTemp3 + 1), ?(strTemp1 = "ел", right(strName, strTemp3) + "л", ?(strTemp1 = "ев", left(strName, strTemp3) + "ьв", strName))) + ?(right(strName, 3) = "жан", "", trimr(mid("а у а оме а у а еме " + ?(find("гжкхш", left(strTemp1, 1)) > 0, "и", "ы") + " е у ойе я ю я еме и е ю ейе и и ь ьюи и и ю ейи", 10 * ?((strTemp2 = 6) and (intSex = "ч"), 4, strTemp2) + 2 * intCase - 3, 2)))); endfunction //******************************************* // _strDecline(strName, intCase = 2, intSex = 3) export // // Параметры: // strName - Строка. ФИО или профессия. // intCase - Число. В каком падеже склонять. // 0 - ??? // 2 - родительный(нет кого?). // 3 - дательный(кому?). // 4 - винительный(вижу кого?). // 5 - творительный(кем?). // 6 - предложный(о ком?). // Параметр необязателен. // По умолчанию - 2. // intSex - Число. Пол. // 1 - мужской. // 2 - женский. // 3 - средний ;)). // 4 - если склоняем профессию. // Параметр необязателен. // По умолчанию - 3. // // Возвращаемое значение: // Строка. Переданое для склонения строка. // в нужном падеже. // // Описание: // Производит склонение по падежам // Фамилии и профессии людей. // function _strDecline(strName, intCase = 2, intSex = 3) export strName = trimall(strName); intSex = mid("ча" + right(strName, 1) + "ч", intSex, 1); strTemp1 = find(strName + " ", " "); if intCase < 0 then intCase = -intCase; strTemp2 = left(strName + " ", strTemp1 + 1) + ". "; strName = strreplace(strTemp2 + mid(strName, find(mid(strName + " ", strTemp1 + 2), " ") + strlen(strTemp2) - 1, 1) + ".", " .", ""); endif; strTemp2 = left(strName, strTemp1 - 1); strTemp3 = right(strTemp2, 3); strTemp4 = right(strTemp3, 2); strTemp5 = right(strTemp4, 1); strTemp2 = ?(intSex = "а", ?((strTemp5 = "а") and (strTemp3 <> "ула") or (strTemp4 = "ая"), left(strTemp2, strTemp1 - ?(strTemp4 = "ая", 3, 2)) + mid( ?(strTemp4 = "ая", strTemp4, strTemp5 + " ") + ?(strTemp4 = "ка", "и е у ойе", "ойойу" + ?(strTemp4 = "ая", "ю", " ") + "ойой"), intCase * 2 - 1, 2), strTemp2), ?(find("ой ый ий", strTemp4) > 0, ?(find("Цц", mid(strTemp2, strTemp1 - 3, 1)) > 0, strDeclineAdd(strTemp2, intCase), left(strTemp2, strTemp1 - 3) + mid(" огоомуого" + ?((strTemp4 = "ий") or (strTemp3 = "гой") or (strTemp3 = "хой"), "и", "ы") + "м ом", intCase * 3 - 2, 3)), ?(find("вт", strTemp5) + find("ак ах ик им ин ич рг ын юк яр яш", strTemp4) > 0, strTemp2 + mid(" а у а " + mid("оыыые", find(" внтч", strTemp5) + 1, 1) + "ме", intCase * 2 - 1, 2), strTemp2))); strTemp5 = strTemp1 + find(mid(strName + " ", strTemp1 + 1), " "); return ?((intSex = "ч") and (strTemp1 = strlen(strName) + 1), strDeclineAdd(strName, intCase), trimall(strTemp2)) + " " + strDeclineAdd(mid(strName, strTemp1 + 1, strTemp5 - strTemp1 - 1), intCase, intSex) + " " + strDeclineAdd(mid(strName, strTemp5 + 1, strlen(strName) - strTemp5), intCase, intSex); endfunction |
|||
|
15
kugelfangg
04.11.09
✎
13:15
|
(14)Большое спасибо но к сожалению эта функция склоняет фамилии заканчивающиеся на "О" такие как "Головко" а по иди не должна.
|
|||
|
16
skunk
04.11.09
✎
13:23
|
как склоняет... проверил
Головко Константина Александровича Головко Константину Александровичу Головко Константина Александровича Головко Константином Александровичем Головко Константине Александровиче |
|||
|
17
Armando
04.11.09
✎
13:31
|
(14) Как эта функция просклоняет фамилию Капица?
|
|||
|
18
skunk
04.11.09
✎
13:36
|
(17)а самому проверить религия мешает?
Капица Константина Александровича Капица Константину Александровичу Капица Константина Александровича Капица Константином Александровичем Капица Константине Александровиче |
|||
|
19
Armando
04.11.09
✎
13:42
|
(18) Лень-матушка мешает))
Спасибо! |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |