| 
| 
 | Вопрос # 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): проблема решена Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |