Информационный сервер для программистов: Исходники со всего света. Паскальные исходники со всего света
  Powered by Поисковый сервер Яndex: Найдется ВСЁ!
На Главную Pascal Форум Информер Страны мира
   Базы Данных    >>    dbutil
   
 
 Утилиты для работы с dBase  Евгений Бондарь 11.11.1992

9 утилит для групповой обработки баз данных, файлов и каталогов



16k 
 

И если кричать ты не можешь "хрю-хрю" Визжи не стесняясь "И-И" Уважаемые соратники по 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