|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
01.07.2009, 19:28 | #1 |
Пользователь
Регистрация: 27.06.2009
Сообщений: 36
|
Из родительного падежа в именительный падеж
Есть:
Попова Сергея Сергеевича Поповой Анны Николаевны Как написать форму, чтобы получилось: С.С. Попов А.Н. Попова Надо, чтобы в фамилии удаляло ой и а к конце слова,а имя и отчество были сокращены и поставлены в перёд. |
01.07.2009, 20:59 | #2 |
Форумчанин
Регистрация: 24.06.2008
Сообщений: 516
|
А если фамилии Коновой, Мазепа и т.д. тогда что?
Можно сделать все! Было бы время, да деньги...
|
01.07.2009, 21:28 | #3 | |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
Цитата:
Анализ,обработка данных Недорого
|
|
01.07.2009, 22:02 | #4 |
Пользователь
Регистрация: 27.06.2009
Сообщений: 36
|
Это я так понимаю, это только для перестановки.
А как можно сделать на функциях? Пример: 1. Три слова разместить в разные ячейки. 2. Из 2 и 3 взять первые буквы. 3. В первой определить какие буквы в конце и условием заменить концовку, т.е. если "а" то "", если "ой" то "а". Такое реально или нет, можно ли описать такое программно Последний раз редактировалось KinderX; 01.07.2009 в 22:11. |
01.07.2009, 22:39 | #5 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Очень интересная задача. Я попробовал ее решить в общем виде. Результат в приложении.
Поскольку все окончания не упомнишь, то я оставил возможность добавления своих окончаний. В коде это сделано с помощью строковых констант: Код:
Также я реализовал проверку на правильность введенного имени. Должно быть введено три русских слова с большой буквы (большая буква ставится автоматически), разделенных пробелом. Программа сама определяет род человека, для которого ввели данные, нечувствительна к порядку расположения фамилии, имени и отчества. Т.е. можно написать Иванов Иван Иванович, а можно Иван Иванович Иванов. Прошу пробовать и спрашивать.
Лучше день потерять — потом за пять минут долететь!©
|
01.07.2009, 22:42 | #6 | |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Цитата:
А что означает это:
Лучше день потерять — потом за пять минут долететь!©
|
|
02.07.2009, 05:58 | #7 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Посмотрите вложение с решением с помощью пользовательской функции.
В дальнейшем, при добавлении требуемых замен, в коде функции добавляйте в массив b то окончание, которое нужно заменить, а в массив c - то, на которое нужно заменить. При этом обязательно соблюдать последовательность в массивах. Функция просматривает окончания из 1-й и 2-х последних букв. Если нужно, то без труда можно сделать для любого количества. Только при просмотре обязательно нужно начинать с наибольшего количества символов контролируемых окончаний.
Чем шире угол зрения, тем он тупее.
Последний раз редактировалось SAS888; 02.07.2009 в 06:03. |
02.07.2009, 17:12 | #8 |
Пользователь
Регистрация: 27.06.2009
Сообщений: 36
|
SAS888 пример не плох, но надо описать весь алфавит, что я и сделаю.
Проще не придумаешь, да со временем находя ошибки в тексте, можно будет задать с лёгкостью новое правило замены, что в итоге приведет через кое какое время, будет не плохая база для этого примера. Одно только плохо может получится, если попадет мужская фамилия с буквой А на конце(бывают и такие). Viter.Alex тебе тоже большое спасибо, примного благодарен тебе . Ребята не поможете еще? При стерании всех чисел выдаёт ошибку как её исправить? Private Sub TextBox1_Change() Cells(2, 15).Value = TextBox1.Text Or Cells(2, 15).Value = TextBox1.Value End Sub |
02.07.2009, 19:48 | #9 | |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Цитата:
Странная запись. что ты хочешь добиться с ее помощью? Убери TextBox1.Value.
Лучше день потерять — потом за пять минут долететь!©
|
|
02.07.2009, 20:16 | #10 |
Пользователь
Регистрация: 27.06.2009
Сообщений: 36
|
Цитата:
Сообщение от KinderX …Ребята не поможете еще? При стерании всех чисел выдаёт ошибку как её исправить? Private Sub TextBox1_Change() Cells(2, 15).Value = TextBox1.Text Or Cells(2, 15).Value = TextBox1.Value End Sub Странная запись. что ты хочешь добиться с ее помощью? Убери TextBox1.Value. Это у меня от меню на листе. В TextBox1_Change вводится число которое задаётся в ячейку, но при стирании Backspace'ом числа выдает ошибку! |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
автоматическое изменение падежа слова | B00lean | Microsoft Office Word | 5 | 20.03.2009 00:43 |