И если кричать ты не можешь "хрю-хрю"
Визжи не стесняясь "И-И"
Уважаемые соратники по dBASE и иже с ним !
Если Вам когда-нибудь приходилось иметь дело с более-менее
большим проектом,да еще устанавливать его на нескольких PC,то Вы,
конечно же сталкивались с проблемами массовых операций,которые хочется
автоматизировать.Я сильно подозреваю,что те,кто читает SP и пишет не
только на dBASE, уже написали себе что-то подобное,но для тех,у кого
руки еще не дошли,предлагаю нижеследующее.
1) При установке пакета,да и в ходе разработки часто нужно
ZAPнуть базу,а то и несколько [сотен].И очень скучно входить в Fox
и писать каждый раз USE .. ZAP ..
Поэтому - пользуйтесь программой ZAP,которая допускает групповые
операции и работает с подкаталогами !
Запуск : ZAP маска [Subdir]
В результате все указанное будет очищено в лучшем виде ! Каталоги
обрабатываются ,начиная с текущего.Любители программы ZAP(by I.Sviridov)
могут свободно мой Zap переименовать.
2) Программа ZAPI проделывает то же самое с индексами IDX,причем
чистятся и компактные индексы FoxPro.Индексы Cdx и Ntx распознаются ,
но пока не обрабатываются,нет времени детально разобраться.Буду призна-
телен за информацию о структуре.Информация по CDX в SP45 недостаточна.
3) Возможно у Вас возникало желание ,собрать всю информацию о
человеке(он же ТАБЕЛЬНЫЙ НОМЕР) или группе людей в отдельном каталоге.
Это удобно в целом ряде случаев ,так как хорошо вписывается в
макроподстановки.И вообще:"Разделяй и властвуй".Да вот незадача -
грустно писать каждый раз MD TN1 ,MD TN2 ... и т.д.. Так попробуйте
программку BMD !
Запуск : BMD <число1> <число2> [шаг] [постоянный префикс] /P
Шаг по умолчанию принят = 1.Если указывается /p ,то префикс превратится
в постфикс.
Примеры:
Bmd 1 5
Создаются директории 1,2,3,4,5
Bmd 1 26500 10 _TN /P
Будет создано черт знает сколько директорий вида
1_TN,11_TN,21_TN .. 26491_TN
4) А если вдруг понадобилось все это богатство уничтожить?
Нет ничего проще! "F8-и каталога нет."(By Trofimenko Dmitry) или
BDD <каталог> и все дела !
В указанном каталоге будут уничтожены все подкаталоги со всем содержимым.
Исключение будет сделано только для подкаталогов,содержащих ReadOnly
файлы.Это ,конечно медленнее,чем F8 или Zap ,но позволит защитить что-то
особенно дорогое.
5) Просто поразительно, до чего многие файлы одинаковы,особенно
до начала заполнения.Поэтому,чем писать много раз что-то вроде
Сopy Tn_1.ntx Tn_2.ntx
пользуйтесь программой BMULTFIL ,которая раскопирует Ваш файл на нужное
количество.
Запуск :
BMULTFIL <файл-образец> <число1> <число2> [шаг] [префикс] /P
Правила размножения - как в BMD.Пример:
BMultFil tn_1.ntx 2 100 1 tn_
5) Так как я оказался ,настолько туп,что не понял прелестей
Nantucket-ского MAKE,то написал свой,хотя и ограниченный.
Однако он в 5 раз меньше ,не требует Make-файла и знания правил
записи.
Запуск : BMAKE программа 1 .. [программа N]
Для каждого указанной программы проверяется наличие и время созда-
ния OBJ.Если оный отсутствует или имеет нулевую длину или устарел,то
запускается Clipper.Поиск Clipper-a ведется в текущем каталоге,а затем
в PATH.
После чего выполняется строка
TLINK программа1+..+программаN,,Nul,Clipper.lib+Extend.lib,
причем TLINK ищется аналогично Clipper,а библиотеки ищутся там же,где
был обнаружен Clipper.Наличие всех .PRG не требуется.Поэтому можно
писать что-то вроде
BMAKE main util \cl\debug
Это покрывает 90% моих потребностей.Там же,где надо что-то другое,
например Blinker(на мой взгляд лучший из оверлейников) или еще одна
библиотека,можно использовать программу NeedClip,которая делает только
первую часть указанного процесса,т.е. трансляцию, и прекращается с
ErrorLevel 1 при наличии ошибок. Т.е. можно написать Bat примерного
вида:
NeedClip First Second Third
IF Not ErrorLevel 1 Link Fisrt+second+Third+Debug ...
Желающие могут перетранслировать файл Bmake.pas с удобной для них
строкой линковки.
6)Программка BDFILE предназначена для уничтожения указанных
файлов во всех подкаталогах.В отличие от BDD не будет пощады и файлам
ReadOnly,System,Hidden.Запуск
BDFILE <mask> [ДДММУУ]
При указании параметра даты уничтожаются только файлы ДО этой даты.
Это единственная причина ,по которой можно использовать BDFILE.В осталь-
ном Killer лучше.
7) При завершении работы желательно скопировать текущее состояние
(баз или программ).Копировать все гамузом долговато будет,а BackUp имеет
свои неприятности(еще и Restore нужен,формат нечитабельный).Поэтому
была написана программа Update,которая копирует только свеженькое.Я ее
использую каждый день при разработке ,а в рабочих программах вставляю
перед выходом !Update *.dbf.Кроме того,ее можно использовать и в Bat,
т.к. системная команда Copy MsDos не имеет кода возврата.
Конечно,использующие Ndos(DrDos не щупал) имеют меньше забот,т.к.
там у Copy есть ключ /U и код возврата,но не везде же Ndos !
Подробное описание в файле Update.doc
Все программы транслировались TPC 5.0.
Все программы распространяются без -воз -мез -дно,т.е. да'гом.
Евгений Бондарь,Луганск,348024,Ленинградская 8.
Рабочий [0642] 52-41-07
(ВЦ Национального банка Украины)
К сведению вирусологов !
Нормальные длины файлов:
bdd.exe 4032
bdfile.exe 4704
bmake.exe 5120
bmd.exe 3840
bmultfil.exe 5088
needclip.exe 4384
update.exe 5536
zapi.exe 5264
zapp.exe 4144
|