Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 поиск слова в поле  [new]
noobb
Member

Откуда:
Сообщений: 44
День добрый!
такая проблемка в поле city есть такие значения:

Москва
Москава
Москв
...

как программно объяснить лисе, что все что если в поле есть значение "Моск" то обновиться все поля значением "Москва" ?

Благодарю
16 июл 08, 07:33    [5939122]     Ответить | Цитировать Сообщить модератору
 Re: поиск слова в поле  [new]
Kruchinin Pahan
Member

Откуда: Екатеринбург
Сообщений: 925
noobb
День добрый!
такая проблемка в поле city есть такие значения:

Москва
Москава
Москв
...

как программно объяснить лисе, что все что если в поле есть значение "Моск" то обновиться все поля значением "Москва" ?

Благодарю

Если именно такая постановка задачи, то что-нибудь типа:
REPLACE ALL City WITH "Москва" FOR "МОСК"$UPPER(City)
16 июл 08, 07:41    [5939131]     Ответить | Цитировать Сообщить модератору
 Re: поиск слова в поле  [new]
noobb
Member

Откуда:
Сообщений: 44
Приветствую, Kruchinin Pahan.
я немного не так объяснил
в поле city значения примерно такого вида

125047, г. Москва, , ул. пер.Дегтярный, 4-1 

и надо чтоб искало значение "МОСК" в строке, если нахрдит то заменить всю строку на "Москва"
16 июл 08, 08:12    [5939182]     Ответить | Цитировать Сообщить модератору
 Re: поиск слова в поле  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1547
noobb
Приветствую, Kruchinin Pahan.
я немного не так объяснил
в поле city значения примерно такого вида

125047, г. Москва, , ул. пер.Дегтярный, 4-1 

и надо чтоб искало значение "МОСК" в строке, если нахрдит то заменить всю строку на "Москва"

А если там будет Новомосковск тоже менять? Или Москвитино?
16 июл 08, 08:22    [5939201]     Ответить | Цитировать Сообщить модератору
 Re: поиск слова в поле  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1547
И еще вопрос в догонку: заменять только сочетание Моск или все слово?
16 июл 08, 08:24    [5939206]     Ответить | Цитировать Сообщить модератору
 Re: поиск слова в поле  [new]
noobb
Member

Откуда:
Сообщений: 44
А если там будет Новомосковск тоже менять? Или Москвитино?


Округлим до Москвы ничего страшного=)

И еще вопрос в догонку: заменять только сочетание Моск или все слово?


если встречается в строке слово "МОСК" то всю строку
125047, г. Москва, , ул. пер.Дегтярный, 4-1 
заменить на
Москва
16 июл 08, 08:28    [5939219]     Ответить | Цитировать Сообщить модератору
 Re: поиск слова в поле  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1547
noobb
А если там будет Новомосковск тоже менять? Или Москвитино?


Округлим до Москвы ничего страшного=)

Очень интересно. Мосвитино в общем-то, находится очеь далеко от Москвы и к ней не имеет никакого отношения. Все равно менять?
16 июл 08, 08:33    [5939239]     Ответить | Цитировать Сообщить модератору
 Re: поиск слова в поле  [new]
noobb
Member

Откуда:
Сообщений: 44
Sergey Sizov, заставляешь задуматься...=)
а такое реализовать возможно:
-искать в каждой строчке поля city слово, которое идет после символа "г." и заносить его в поле city1?
во как.
16 июл 08, 08:40    [5939257]     Ответить | Цитировать Сообщить модератору
 Re: поиск слова в поле  [new]
GoshaS
Member

Откуда: юг Архангельской обл.
Сообщений: 392
структура как я понимаю одинаковая:
индекс, город, район, улица, дом
ну тогда можешь смотреть по запятым.
if OCCURS(',' city)=4
  *правильная структура файла
   city='111111,г. Москва, ,ул. Мояковского,3-3'
   ? Left(city,at(',',city,1)-1)&&индекс
   ? SUBSTR(city, at(',',city,1)+1, at(',',city,2)-at(',',city,1)-1) &&Горд
   ? SUBSTR(city, at(',',city,2)+1, at(',',city,3)-at(',',city,2)-1) &&Район
   ? SUBSTR(city, at(',',city,3)+1, at(',',city,4)-at(',',city,3)-1) &&Улица
   ? Right(city,len(city)-at(',',city,4))&&дом-корпус
else
   messagebox('Неверная структура файла')
endif 
А дальше уже сам, как тебе удобней, прямо тут и менять, обратно строку склеить и закинуть в таблциу, либо в курсор скинуть, все отдельно с ключевым полем таблицы и там смотреть/править по измененным полям сделать update таблицы исходника.
16 июл 08, 09:32    [5939411]     Ответить | Цитировать Сообщить модератору
 Re: поиск слова в поле  [new]
Kruchinin Pahan
Member

Откуда: Екатеринбург
Сообщений: 925
noobb
Sergey Sizov, заставляешь задуматься...=)
а такое реализовать возможно:
-искать в каждой строчке поля city слово, которое идет после символа "г." и заносить его в поле city1?
во как.

Репрокод:
SCAN
	lnStartPos = AT("г. ", City)
	IF lnStartPos > 0
		REPLACE City1 WITH GETWORDNUM(LTRIM(SUBSTR(City, lnStartPos + 3)), 1, " ")
	ENDIF
ENDSCAN
Хотя, чаще всего, парсинг таких вещей на порядок сложнее.
16 июл 08, 09:37    [5939441]     Ответить | Цитировать Сообщить модератору
 Re: поиск слова в поле  [new]
GoshaS
Member

Откуда: юг Архангельской обл.
Сообщений: 392
GETWORDNUM(LTRIM(SUBSTR(City, lnStartPos + 3)), 1, " ")
Не пойдет, если название города из двух слов.
16 июл 08, 09:42    [5939474]     Ответить | Цитировать Сообщить модератору
 Re: поиск слова в поле  [new]
GoshaS
Member

Откуда: юг Архангельской обл.
Сообщений: 392
у нас все разнесено отдельно в базе, но все равно, правили все ручками, скажем так:
select town, count(*) 
from klient 
where town<>'Москва' and town licke '%моск%'
order by 2
потом смотриш, действительно ли это очепятка, если попадают другие города, тогда условие сужаешь, а потом уже DML запрос
update klient set town='Москва'
where town<>'Москва' and town licke '%моск%'
И т.д., вот таким извратом занимался.
16 июл 08, 10:08    [5939660]     Ответить | Цитировать Сообщить модератору
 Re: поиск слова в поле  [new]
noobb
Member

Откуда:
Сообщений: 44
Всем спасибо! буду искать оптимальный вариант!
16 июл 08, 16:51    [5943616]     Ответить | Цитировать Сообщить модератору
 Re: поиск слова в поле  [new]
Dima T
Member

Откуда:
Сообщений: 15294
noobb
День добрый!
такая проблемка в поле city есть такие значения:

Москва
Москава
Москв
...

как программно объяснить лисе, что все что если в поле есть значение "Моск" то обновиться все поля значением "Москва" ?

Благодарю


Наверно задача Москвой не ограничивается? Тут думаю тебе надо строить список городов (или взять готовый где-нибудь), а затем при несовпадении искать наиболее похожее. И таблицу автозамен хранить.

Тут обсуждали способы решения подобных задач.
16 июл 08, 17:17    [5943801]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить