Добавлено: 09 Август 2004, 9:48
Hello, clalist
Возникла необходимость склонять фамилии, имена и т.д. по падежам.
В базе они в именительном падеже, а выводить нужно то в родительном, то в дательном...
В общем такая трабла ;(
Может кто-нибудь знает как с ней справиться???
C6.1 ABC
--
Respect,
nix mailto:nix@hotbox.ru
(Добавление)
Мне в свое время для оформления документов тоже понадобилось решать такую задачу. Не скажу, что решена она была на 100% автоматично, но по крайней мере пользователю в большинстве случаев оставалось только согласиться с предлагаемым программой вариантом.
Получается, что в зависимости от нескольких последних букв фамилии/имени/отчества возникает достаточно ограниченный набор вариантов их трансформации в другие падежи (сейчас уже не скажу точно, но чуть ли не в пределах двух десятков). Поэтому я просто сделал табличку, в которой были эти соответствия, и искал от самого длинного к самому короткому. При необходимости пользователь мог руками добавить отсутствующий вариант.
WBR, Igor Timofeev
(Добавление)
Привет!
Поиск от самого длинного может быть и весьма долгим, поэтому при солидных объёмах базы и массовой обработке вызовет недоумение юзеров. Поэтому можно сделать и так:
1. Делаем табличку перекодировки (как ты и говорил)
2. Делаем справочник по всем спользуемым именам и пр
3. Натравливаем перекодировик на эту таблицу и получаем ещё 2-5 таблиц (с падежами)
4. именно эти таблицы и используем в программе
5. Юзер может менять не только правило, но и конкретное исключение, что уже всяко гибче и шибче
6. заодно можно косяки в базе автоматом править (в БД прописки Новосибирска около 2% всех записей с грубыми ошибками). Так вот через переходники и исправляем - в базе хранится косяк, а в интерфейсе всё рулез.
Александр Агеев (aageev@satren.ru)
Написал: ClaList(2)
Возникла необходимость склонять фамилии, имена и т.д. по падежам.
В базе они в именительном падеже, а выводить нужно то в родительном, то в дательном...
В общем такая трабла ;(
Может кто-нибудь знает как с ней справиться???
C6.1 ABC
--
Respect,
nix mailto:nix@hotbox.ru
(Добавление)
Мне в свое время для оформления документов тоже понадобилось решать такую задачу. Не скажу, что решена она была на 100% автоматично, но по крайней мере пользователю в большинстве случаев оставалось только согласиться с предлагаемым программой вариантом.
Получается, что в зависимости от нескольких последних букв фамилии/имени/отчества возникает достаточно ограниченный набор вариантов их трансформации в другие падежи (сейчас уже не скажу точно, но чуть ли не в пределах двух десятков). Поэтому я просто сделал табличку, в которой были эти соответствия, и искал от самого длинного к самому короткому. При необходимости пользователь мог руками добавить отсутствующий вариант.
WBR, Igor Timofeev
(Добавление)
Привет!
Поиск от самого длинного может быть и весьма долгим, поэтому при солидных объёмах базы и массовой обработке вызовет недоумение юзеров. Поэтому можно сделать и так:
1. Делаем табличку перекодировки (как ты и говорил)
2. Делаем справочник по всем спользуемым именам и пр
3. Натравливаем перекодировик на эту таблицу и получаем ещё 2-5 таблиц (с падежами)
4. именно эти таблицы и используем в программе
5. Юзер может менять не только правило, но и конкретное исключение, что уже всяко гибче и шибче
6. заодно можно косяки в базе автоматом править (в БД прописки Новосибирска около 2% всех записей с грубыми ошибками). Так вот через переходники и исправляем - в базе хранится косяк, а в интерфейсе всё рулез.
Александр Агеев (aageev@satren.ru)
Написал: ClaList(2)