|
Вопрос # 5 250/ вопрос закрыт / |
|
Здравствуйте, уважаемые эксперты!
Есть БД. Поля Фамилия, Имя, Отчество и тд, НО (!) нет поля Пол. Теперь вопрос: нужно раскидать значения полей по DBEdit'ам (база .dbf т_т) и заполнить эдит с полом. Погуглив, ничего толкового не нашел, за исключением совета сравнивать Имя с заранее подготовленным списком имен. Согласитесь, это долго и есть вероятность, что совпадений не будет. Есть идея сравнивать окончания отчеств, т.е. если отчество заканчивается на -вна то пол "Ж", если на -вич, то "М". Вопрос как это реализовать. Есть есть еще варианты, с удовольствием выслушаю.
P.S. база на 7000 записей, так что добавлять поле Пол руками и заполнять слишком мутерно=(
 |
Вопрос задал: UnHoly (статус: Посетитель)
Вопрос отправлен: 3 мая 2011, 21:38
Состояние вопроса: закрыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Вадим К
Здравствуйте, UnHoly!
В случае с Оглы - это обычное для азербайджанцев. И самое интересное, что "оглы" - это не имя, это просто специальная конструкция, которая переводится как " сын". То есть - "Эдуард Амирбек Оглы" это "Эдуард, Амирбек сын" == "Эдуард Амирбекович"
В свое время у меня была задача проставить пол на базе в 30тыс клиентов. Все было сделано просто - вначале отобрали всех на "ыч" (так как в некоторых случаях овыч не сработает - пример - "Хомыч". И также смотрели их имена - у мужчин в большинстве случаев оно оканчивается на согласную. В этом случае сразу проставляли пол мужской. Тех, у кого оканчивается имя на гласную и кончается на ич - просмотрели глазами (их было около десятка - да и тут были в основном ошибки - типа "Рома Петрович").
Женские имена в большинстве своем заканчиваются на а или я (и отчество на "вна") и эти были сразу отобраны.
В самом конце остались афроамериканцы и сирийцы, коих было пара десятков человек. Но там в некоторых случаях пол и не угадаешь, как бы этого не хотел.
То есть, план действий в основном такой. Заводим ещё одно поле, лучше типа char (на один символ) (булевое поле неправильно по многим причинам - например, true - это мальчик или девочка? а феминистки не дремлют. К тому же если пол неизвестен, то можно и знак вопроса поставить. Также сразу решается вопрос с меншинствами).
А потом, используя оператор select - отбираем, что бы посмотреть, и update - что бы обновить. Можно даже сделать себе маленькое приложение.
И самое главное - не забыть забекапить базу перед экспериментами!!!
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 3 мая 2011, 23:17
Оценка за ответ: 5
|
Мини-форум вопроса
Всего сообщений: 5; последнее сообщение — 3 мая 2011, 23:37; участников в обсуждении: 4.
|
min@y™ (статус: Доктор наук), 3 мая 2011, 21:49 [#1]:
Ответ на вопрос торчит в самом вопросе.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Мережников Андрей (статус: Абитуриент), 3 мая 2011, 22:13 [#2]:
сравнение отчества тоже не всегда может "прокатить", но такие случаи редки. Например, Эдуард Амирбек Оглы: имя Эдуард, отчество Амирбек Оглы. Пример из реальной жизни.
|
|
UnHoly (статус: Посетитель), 3 мая 2011, 23:06 [#3]:
Мережников Андрей: Это понятно, но там уже можно сделать параллельно список всяких "Амирбеков", их не так много будет, и потом дать уже юзверям на отработку..нужно чтобы в основном массиве проставился пол.
|
|
UnHoly (статус: Посетитель), 3 мая 2011, 23:26 [#4]:
Вадим К: если уж вы говорите, что "клиент скорее мертв, чем жив", скорее всего так оно и есть..что ж, танцы с бубном вокруг dbf таблиц 2-3 раза в месяц не самая приятная перспектива, но се ля ви, как говорят французы. Спасибо!
З.Ы. Раз пошла такая пьянка, не подскажете, чем можно dbf проиндексировать (cdx)?
|
|
Вадим К (статус: Академик), 3 мая 2011, 23:37 [#5]:
Их не нужно индексировать, нужно просто создать индекс для нужных полей. А для этого к примеру можно использовать database desktop из стандартной поставки делфи.
Галочка "подтверждения прочтения" - вселенское зло.
|
3 мая 2011, 23:47: Вопрос закрыт (решение принял автор вопроса — UnHoly): проблема решена
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|