|
|
|
изменение окончания у фамилии
|
|||
|---|---|---|---|
|
#18+
For i = 1 To rs_fio.RecordCount pozition = InStr("n_pok", " ") sel$ = Mid$(sel$, 3, NumLeft%) If a = sel$ Like "'ова'" Then cnn.Execute "update tempDB set m='1'" Else: cnn.Execute "update tempDB set m='0'" End If Next i скажите пожалуйста, где ошибка? все записи метятся 0, хотя окончания в поле n_pok на ОВА имеются. только не надо пинать ногами... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2005, 10:11:36 |
|
||
|
изменение окончания у фамилии
|
|||
|---|---|---|---|
|
#18+
Во-первых, не a = sel$ Like "'ова'" а sel$ Like "'*ова'" Во-вторых, я почему-то не вижу команду перехода с записи на запись... Хотя верю, что она там есть. В-третьих, я не понимаю, что такое tempDB и как оно синхронизируется с этим рекордсетом. В-четвертых, по этому алгоритму фамилии Казанова, Корова, Сова всегда будут женскими. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2005, 00:36:43 |
|
||
|
изменение окончания у фамилии
|
|||
|---|---|---|---|
|
#18+
т.е. позицию первого пробела в строке я нашел правильно? и 3 символа в лево будут проверяться правильно? tempDB - это временная таблица, в которой есть 40 строк, она пока просто для экспериментов Владимир Саныч может быть Вы скажите как себе представляете решение моей проблемы? я что-то тоже не уверен что у меня все правильно подвязывается... а насчет вашего четвертого пункта, то это не мои проблемы, а начальства, моя задача на данный момент определена, а остальное не мои проблемы. очень надеюсь на Вашу помощь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2005, 09:53:02 |
|
||
|
изменение окончания у фамилии
|
|||
|---|---|---|---|
|
#18+
shadyт.е. позицию первого пробела в строке я нашел правильно? и 3 символа в лево будут проверяться правильно? Ой... Нет-нет. Я эту программу вообще не очень понимаю. Там куча переменных, которые обозначают непонятно что. Например, NumLeft. Кроме того, обращение InStr("n_pok", " ") выдаст 0, потому что в строке "n_pok" нет пробелов. В общем, если надо проверить, что перед первым пробелом стоят буквы "ова", то я бы сделал так: pozition=instr(XXX," ") if pozition>0 then if left(XXX,pozition-1) like "*ова" then ... end if end if shadytempDB - это временная таблица, в которой есть 40 строк, она пока просто для экспериментов То есть проверяем одну строку, а апдейт делаем во всех сорока? И так 40 раз? А команды перехода на другую запись, похоже, все-таки нету... Короче, проход по рекордсету обычно делают так: do until rs_fio.eof ... rs_fio.movenext loop Итого примерно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2005, 13:50:08 |
|
||
|
изменение окончания у фамилии
|
|||
|---|---|---|---|
|
#18+
...т.е. где сидит фио. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2005, 13:50:47 |
|
||
|
изменение окончания у фамилии
|
|||
|---|---|---|---|
|
#18+
Владимир Саныч, во первых большое Вам спасибо за помощь и надеюсь что Вы мне поможете и в дальнейшем Код: plaintext да и... Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2005, 16:23:09 |
|
||
|
изменение окончания у фамилии
|
|||
|---|---|---|---|
|
#18+
Насчет edit - если это рекордсет ADO, то я просто не помню синтаксис. Пусть кто-нибдь подскажет. Насчет 3 позиций - имеется в виду вот что: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2005, 16:58:09 |
|
||
|
изменение окончания у фамилии
|
|||
|---|---|---|---|
|
#18+
Идиоты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2005, 22:45:36 |
|
||
|
изменение окончания у фамилии
|
|||
|---|---|---|---|
|
#18+
AndreyMpИдиоты. И Вам добрый вечер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2005, 22:59:55 |
|
||
|
изменение окончания у фамилии
|
|||
|---|---|---|---|
|
#18+
AndreyMpИдиоты. очень развернутый ответ... по делу лучше бы что-нибудь посоветовали ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2005, 08:13:29 |
|
||
|
изменение окончания у фамилии
|
|||
|---|---|---|---|
|
#18+
Всем привет. 2 sandy Я не знаю до чего ты дошел и может у тебя уже все получилось, но я бы для начала сделал так: Расплитил все на разные поля |Фам|Им|От| (ф-я Split) делать пришлось бы в два этапа(сплитить), но далее по таким данным легче определять пол. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2005, 09:04:29 |
|
||
|
изменение окончания у фамилии
|
|||
|---|---|---|---|
|
#18+
авторВ-четвертых, по этому алгоритму фамилии Казанова, Корова, Сова всегда будут женскими. А кроме алгоритма еще если так Казанова И.П. - то никогда не определишь who is who. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2005, 09:09:19 |
|
||
|
изменение окончания у фамилии
|
|||
|---|---|---|---|
|
#18+
авторпо делу лучше бы что-нибудь посоветовали Да Вам уже сказали и не раз, что по фамилии пол определить НЕВОЗМОЖНО . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2005, 10:46:17 |
|
||
|
изменение окончания у фамилии
|
|||
|---|---|---|---|
|
#18+
AndreyMpДа Вам уже сказали и не раз, что по фамилии пол определить НЕВОЗМОЖНО. Невозможно, но не всех фамилий, это же зависит от того какие у него данные. 90% сделает - уже хорошо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2005, 10:56:08 |
|
||
|
изменение окончания у фамилии
|
|||
|---|---|---|---|
|
#18+
AndreyMp Да Вам уже сказали и не раз, что по фамилии пол определить НЕВОЗМОЖНО . если б вы читали внимательнее, то увидели б, что задача немного изменилась и теперь нужно определить пол у тех, у кого его можно определить очевидным образом, например Иванов, заканчивается на "нов", соответственно мужчина, Петрова, заканчивается на "ова" соответственное женщина, остальные - пол не определн, записи считаются неликвидными и в рассылке не принимают участия. если фамилий с определенным полом будет 20, 30, 50% - это тоже результат и очень хороший, я не требую 90% точности в определении пола. если у вас есть дельный совет то пожалуйста, предлагайте. на данный же момент, я воспользуюсь советом Евгений1234-5 , сначала разделю на 3 колонки одну, правда пока не получается... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2005, 10:58:42 |
|
||
|
изменение окончания у фамилии
|
|||
|---|---|---|---|
|
#18+
shadyИванов, заканчивается на "нов", соответственно мужчина, Петрова, заканчивается на "ова" соответственное женщина Это неверно, примеры см. выше. Но поскольку это вообще головная боль начальства, то здесь можно продолжать обсуждать задачу, смирившись с тем, что она решается неверно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2005, 11:20:42 |
|
||
|
изменение окончания у фамилии
|
|||
|---|---|---|---|
|
#18+
Владимир СанычНо поскольку это вообще головная боль начальства, то здесь можно продолжать обсуждать задачу, смирившись с тем, что она решается неверно. ну неверно, пусть будет неверно, главное чтоб решалось в принципе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2005, 11:33:28 |
|
||
|
изменение окончания у фамилии
|
|||
|---|---|---|---|
|
#18+
авторну неверно, пусть будет неверно, главное чтоб решалось в принципе.Ну если надо пустить пыль в глаза начальнику, так и говорил бы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2005, 12:05:12 |
|
||
|
изменение окончания у фамилии
|
|||
|---|---|---|---|
|
#18+
AndreyMp , ну так что поможешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2005, 12:15:21 |
|
||
|
изменение окончания у фамилии
|
|||
|---|---|---|---|
|
#18+
Ну почему бы и не помочь. Можешь в асю стучать 237822510 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2005, 14:40:15 |
|
||
|
изменение окончания у фамилии
|
|||
|---|---|---|---|
|
#18+
Евгений1234-5, че-то ни как не могу разобраться с функцией split, подскажи, как ты себе представляешь разделение одной строки на 3.. я попытался так: Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2005, 14:54:58 |
|
||
|
изменение окончания у фамилии
|
|||
|---|---|---|---|
|
#18+
Split - это не позиция! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2005, 16:25:51 |
|
||
|
изменение окончания у фамилии
|
|||
|---|---|---|---|
|
#18+
Ф-я Split(ТвояСтрока, "разделитель") Для начала это пробел Пишем Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Для определения верхней границы используй Ubound(str) Результат пиши в таблицу. Теперь второй этап если строка "Иванов И.С." :) Вобщем базу надо приводить к виду: ФамИмОтИвановИСИвановИванСергеевич ЗЗЗЫ База большая ? А то просто сгруппировать фамилии и если их не много, ручками проставить МО и ЖЭ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2005, 04:10:16 |
|
||
|
изменение окончания у фамилии
|
|||
|---|---|---|---|
|
#18+
база 150 000 записей, но по предложенному методу очень медленно все выполняется.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2005, 08:39:07 |
|
||
|
изменение окончания у фамилии
|
|||
|---|---|---|---|
|
#18+
авторбаза 150 000 записей, но по предложенному методу очень медленно все выполняется.. Сколько ? Если цель сделать это один раз - вопрос времени стоять не должен... ? ЗЫ По вопросу о скорости: Характер задачи: разбить ФИО на три поля то же с адресом + разобратся где тут(там) улицы микр. и квартала. Все это на рекордсете с занесением результата в соседение поля. Машина P4 2.8 ГГц, 1 гиг Озу первый файл 116 тыс. зап. второй - 223 тыс. зап. специально не замерял, но меньше 15 мин. работаит это точно. Access XP sp3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2005, 12:39:13 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=33287395&tid=2167099]: |
0ms |
get settings: |
5ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
24ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 192ms |
| total: | 305ms |

| 0 / 0 |
