Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 250

/ вопрос закрыт /

Здравствуйте, уважаемые эксперты!

Есть БД. Поля Фамилия, Имя, Отчество и тд, НО (!) нет поля Пол. Теперь вопрос: нужно раскидать значения полей по DBEdit'ам (база .dbf т_т) и заполнить эдит с полом. Погуглив, ничего толкового не нашел, за исключением совета сравнивать Имя с заранее подготовленным списком имен. Согласитесь, это долго и есть вероятность, что совпадений не будет. Есть идея сравнивать окончания отчеств, т.е. если отчество заканчивается на -вна то пол "Ж", если на -вич, то "М". Вопрос как это реализовать. Есть есть еще варианты, с удовольствием выслушаю.

P.S. база на 7000 записей, так что добавлять поле Пол руками и заполнять слишком мутерно=(

UnHoly Вопрос закрыт (ответы не принимаются, мини-форум закрыт)

Вопрос задал: 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™

min@y™ (статус: Доктор наук), 3 мая 2011, 21:49 [#1]:

Ответ на вопрос торчит в самом вопросе.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 3 мая 2011, 22:13 [#2]:

сравнение отчества тоже не всегда может "прокатить", но такие случаи редки. Например, Эдуард Амирбек Оглы: имя Эдуард, отчество Амирбек Оглы. Пример из реальной жизни.
UnHoly

UnHoly (статус: Посетитель), 3 мая 2011, 23:06 [#3]:

Мережников Андрей: Это понятно, но там уже можно сделать параллельно список всяких "Амирбеков", их не так много будет, и потом дать уже юзверям на отработку..нужно чтобы в основном массиве проставился пол.
UnHoly

UnHoly (статус: Посетитель), 3 мая 2011, 23:26 [#4]:

Вадим К: если уж вы говорите, что "клиент скорее мертв, чем жив", скорее всего так оно и есть..что ж, танцы с бубном вокруг dbf таблиц 2-3 раза в месяц не самая приятная перспектива, но се ля ви, как говорят французы. Спасибо!

З.Ы. Раз пошла такая пьянка, не подскажете, чем можно dbf проиндексировать (cdx)?
Вадим К

Вадим К (статус: Академик), 3 мая 2011, 23:37 [#5]:

Их не нужно индексировать, нужно просто создать индекс для нужных полей. А для этого к примеру можно использовать database desktop из стандартной поставки делфи.
Галочка "подтверждения прочтения" - вселенское зло.

3 мая 2011, 23:47: Вопрос закрыт (решение принял автор вопроса — UnHoly): проблема решена

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:29
Выполнено за 0.02 сек.