Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Быстрая замена кодов в двух файлах, VFP dbf замена по справочнику 
:(
    Опции темы
dionisiu
Дата 30.7.2007, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 170
Регистрация: 13.5.2006
Где: Крым

Репутация: нет
Всего: 2



Здравствуйте, уважаемые.
есть проблема, каждодневная и другими способами не решаемая.

В архиве четыре файла: Salouth, Saloutd, Changer и Ignore

Научите меня сделать следующее (VFP6.0):
проверить в файлах (Salouth, Saloutd) записи по полю Merch_id, сравнивая их с полем Findcode в файле Changer, при совпадении - заменить найденный код Merch_id на Origcode соответствующей записи в Changer.  Если в файлах Salouth, Saloutd в поле Merch_id будет найден код, отсутствующий в Changer, то проверить его в Ignore, если его нет и там, то выдать предупреждение о количестве записей с таким кодом в каждом файле. Идеально, если при этом программа позволит налету задать код, которым заменить обнаруженный (с записью в Changer), или просто позволит проигнорировать (с записью в Ignore).


Такое требование: файлы Salouth, Saloutd лежат на сетевом диске, Changer и Ignore - на локальном, нужно задать и хранить к ним пути. 
Программа должна работать в два клика: клик по ярлыку - выдала окно с путями к файлам и кнопки "Обработать" и "Отменить", и собственно - клик по "Обработать" (или отменить, если запущена ошибочно).

Инструкция нужна по-шаговая, так как в среде VFP я никогда не работал, а справка почему-то не вызывается.

С меня пиво на условиях Вашего приезда в Алушту.


Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  _____.ZIP 112,04 Kb
PM MAIL ICQ   Вверх
Cashey
Дата 2.8.2007, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бессмертный
****


Профиль
Группа: Завсегдатай
Сообщений: 3441
Регистрация: 13.11.2002
Где: в столице

Репутация: 13
Всего: 60



Цитата(dionisiu @  30.7.2007,  12:08 Найти цитируемый пост)
проверить в файлах (Salouth, Saloutd) записи по полю Merch_id, сравнивая их с полем Findcode в файле Changer, при совпадении - заменить найденный код Merch_id на Origcode соответствующей записи в Changer.

это реализуется простым запросом
Код

UPDATE Salouth SET Merch_id = Changer.Origcode from Changer WHERE ;
    Merch_id = Changer.Findcode


Цитата(dionisiu @  30.7.2007,  12:08 Найти цитируемый пост)
Если в файлах Salouth, Saloutd в поле Merch_id будет найден код, отсутствующий в Changer, то проверить его в Ignore, если его нет и там, то выдать предупреждение о количестве записей с таким кодом в каждом файле. 

а если найдет?
проще это сделать выборкой и последующим сканом по выборке, примерно так:
Код

SELECT * FROM Salouth WHERE Merch_id NOT in ;
    (SELECT Findcode FROM Changer) AND Merch_id NOT in ;
    (SELECT Ignore FROM Changer) INTO CURSOR _tmpSalouth
IF _tally > 0
    SCAN
        *делается что надо
    ENDSCAN
ENDIF



Цитата(dionisiu @  30.7.2007,  12:08 Найти цитируемый пост)
Такое требование: файлы Salouth, Saloutd лежат на сетевом диске, Changer и Ignore - на локальном, нужно задать и хранить к ним пути. 

диалог выбора директории вызывается функцией 
Цитата
GETDIR([cDirectory [, cText [, cCaption [, nFlags [, lRootOnly]]]]])


как их хранить это уже сугубо по желанию, можно в переменной если каждый раз при запуске вызывать такой диалог


--------------------
библия учит любить ближнего, а камасутра обучает как именно
PM Jabber   Вверх
dionisiu
Дата 2.8.2007, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 170
Регистрация: 13.5.2006
Где: Крым

Репутация: нет
Всего: 2



Cashey, спасибо за отклик.
осталось одно дело - я с фоксом встречаюсь впервые (опыт программирования на ВБА в Экселе и Акцесе есть, запросы SQL составлять умею). Проблема в том, что из этих сред я файлы dbf корректно открыть не могу, а VFP с наскока неодолел (то ли криво встал, то ли урезанная инсталяция - хелпа нету).
Исходя из этого, прошу дать по-шаговую инструкцию, как это сделать. Будьте снисходительны к новичку, пожалуйста.

предложение насчёт пива действует на тех же условиях.

Это сообщение отредактировал(а) dionisiu - 2.8.2007, 18:58
PM MAIL ICQ   Вверх
Cashey
Дата 3.8.2007, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бессмертный
****


Профиль
Группа: Завсегдатай
Сообщений: 3441
Регистрация: 13.11.2002
Где: в столице

Репутация: 13
Всего: 60



нет у меня времени расписывать инструкции. оставь мыло я тебе вышлю пример простой реализации твоей задачи

и поставь себе 9-й фокс


--------------------
библия учит любить ближнего, а камасутра обучает как именно
PM Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Foxpro/Clipper/Dbase"
MoLeX

Запрещается!

1. Публиковать ссылки для чисто рекламных целей.

2. Оффтопить, флеймить, говорить не культурно.

Пожалуйста, адекватно задавайте свой вопрос. Тема должна создаваться с названием характеризующем Вашу проблему.

Задавайте вопросы правильно - как спросите, так вам и ответят.

Разрешено!

Давать ссылки на статьи, обзоры, если это не нарушает первый пункт правил.

Задавая вопрос, давайте нужную информацию касающуюся Вашей проблемы. Этим вы ускорите полезные ответы.

P.S. Размещение рекламы будет строго наказываться!



Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MoLeX

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Foxpro/Clipper/Dbase | Следующая тема »


 




[ Время генерации скрипта: 0.0682 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.