Вопрос по FoxPro
|
|
Катана | Дата: Четверг, 19.06.2014, 21:34 | Сообщение # 31 |
мини модератор
Группа: Модераторы
Сообщений: 82
Награды: 3
Репутация: 40
Статус: Offline
| Кстати, совет Вам - никогда не затачивайте код программы на физический номер строки в dbf-таблице. В особенности, если эту таблицу предоставляет кто-то другой. В следующий раз строки могут быть выгружены в ином порядке и программа, вместо "плохих" записей удалит нужные, а плохие оставит. Лучше использовать DELETE FOR _условие почему запись плохая_. Тогда не будет зависимости от сторонних лиц, и не будет нужды выискивать новые проблемные строки. Программа должна автоматически все делать, главное - грамотно и аккуратно сформулировать это "_условие почему запись плохая_ "
|
|
| |
Роман @lit | Дата: Понедельник, 23.06.2014, 11:47 | Сообщение # 32 |
Группа: Гости
Статус:
| Katana,
Спасибо за совет )))) только для меня условие составить "почему запись плохая" сложновато, да и полгода уже выгружаются ДБФки с одними и темиже не правильными строками (буду просто посматривать)
|
|
| |
Светлана Викторовна | Дата: Понедельник, 23.06.2014, 12:02 | Сообщение # 33 |
Группа: Гости
Статус:
| Добрый день коллеги, подскажите как сделать программку, т.е утилиту для foxpro. Собственно - что бы постоянно не писать в командой строке программы код, а просто к примеру запустила програму выбрала утилиту и она от работала согласно указанного кода в ней. Спасибо.
|
|
| |
Dimon | Дата: Понедельник, 23.06.2014, 12:22 | Сообщение # 34 |
жесткий
Группа: Модераторы
Сообщений: 20
Награды: 6
Репутация: 14
Статус: Offline
| Светлана Викторовна,
Напишите программку в каком нибудь текстовом редакторе, к примеру в блокноте. Далее при сохранении выберите имя файла, а расширение файла поставьте PRG т.е у вас должен получится файл типа - programka.prg Вот и всё. )
Кто не работает, тот пьет!
|
|
| |
Admin | Дата: Понедельник, 23.06.2014, 12:25 | Сообщение # 35 |
Самый главный )
Группа: Администраторы
Сообщений: 352
Награды: 11
Репутация: 1808
Статус: Offline
| Светлана Викторовна, Dimon, Дополню, при сохранении "тип файла" должен быть "текстовые документы" (*.txt)
Самомнение — враг совершенствования.
|
|
| |
игРОМАН | Дата: Понедельник, 23.06.2014, 13:15 | Сообщение # 36 |
Группа: Гости
Статус:
| Хай други, нужна мне Ваша помощь ) Короче такая проблема, есть справочник поставляемых товаров (цветы) - "bitrem_kom.dbf" Из центрального оффиса приходит с неправильными кодами, вернее они правильные, но отличаются, так как устарели. Изменить в ценр.конторе не могут - говорят так делайте.
Немного подробрее в этом DBF файле, есть поле Sort (код сорта семян) Значения имеют от 6 до 9 знаков (пример = 700811) Размерность поля CH=10
Сама суть: В этом поле Sort есть коды, которые уже устарели и их нужно заменять в ручную не много, но вся сложность в том, что DBF очень большой и глазами все проверить сложно. Вот хочу уточнить как сделать в автомате или полуавтомате замена кодов.
Пример: есть код=500361 (старый) его нужно просто заменить на новый код = 700811 по всему полю Sort
помогите плиз.
|
|
| |
Admin | Дата: Понедельник, 23.06.2014, 13:31 | Сообщение # 37 |
Самый главный )
Группа: Администраторы
Сообщений: 352
Награды: 11
Репутация: 1808
Статус: Offline
| игРОМАН,
Цитата игРОМАН ( ) есть код=500361 (старый) его нужно просто заменить на новый код = 700811 по всему полю Sort Ну если 'тупо' замену сделать во всём DBFнике, то я думаю можно просто написать команду: Выбираете файл и замена. Код repl all Sort with '700811' for allt(Sort)='500361' Сильно то в этом не силён, но чего то похожее давненько было. Может чёго и полегче есть!
Если, это нужно делать время от времени или например с частой периодичностью, то советую сделать не большую утилитку, типа (с проверкой сколько кодов на замену, сколько замененно ну и т.п) :
Код use ? count for allt(Sort)='500361'.and.allt(Sort)='500361' repl all Sort with '700811' for allt(Sort)='500361' wait 'Замена в поле Sort произведены' quit
Как пользоваться: - Делаем *.prg с этим кодом, (навсякий случай кину в аттач) - запускаем *.prg через Foxpro выбираем наш файл (где нужно заменить) Готово, работает быстро.
Только не забывать править коды в самой программке ведь в примере указана замена с 500361 на 700811 год
Самомнение — враг совершенствования.
|
|
| |
Катана | Дата: Вторник, 24.06.2014, 01:27 | Сообщение # 38 |
мини модератор
Группа: Модераторы
Сообщений: 82
Награды: 3
Репутация: 40
Статус: Offline
| Вот эта строка - count for allt(Sort)='500361'.and.allt(Sort)='500361'
это шедевр... я плАчу...
|
|
| |
игРОМАН | Дата: Вторник, 24.06.2014, 09:34 | Сообщение # 39 |
Группа: Гости
Статус:
| Admin, Спс, все работает как же мне упростило эта штука жизнь )))))))))))
Катана, А, что с ней не так она ведь работает проверил раз 10 Если где то ошибка давайте поправим
Код count for allt(Sort)='500361'.and.allt(Sort)='500361'
|
|
| |
Катана | Дата: Вторник, 24.06.2014, 11:05 | Сообщение # 40 |
мини модератор
Группа: Модераторы
Сообщений: 82
Награды: 3
Репутация: 40
Статус: Offline
| Катана, А, что с ней не так она ведь работает проверил раз 10 Если где то ошибка давайте поправим
Это абсолютно работоспособная строка. Я просто в затруднении, зачем проверять одно и то же условие дважды? Для надежности?
если задел или обидел - извиняюсь.
|
|
| |