				 И если кричать ты не можешь "хрю-хрю"
				 Визжи не стесняясь "И-И"

					Кстати о дискуссии в SP.



		  Уважаемые соратники по 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 ,но позволит защитить что-то
   особенно дорогое.


	4) Просто поразительно, до чего многие файлы одинаковы,особенно
  до начала заполнения.Поэтому,чем писать много раз что-то вроде


	С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 
