Стеллецкий В.
Мои разработки

Универсальные программки, полезные в bat-файлах

Внимание! Большинство приведенных ниже программ написаны под DOS, и имена файлов, с которыми они работают, соответственно, тоже должны быть DOS'овскими...
Некоторые программы перекомпилированы под win-32.


 

 

 

 

 

 

 

 

 

 

 

 


вверх

sisort.exe - программа сортировки

© Copyright 1990 - 1999, Стеллецкий Игорь Владимирович.
Сортировка строк текстовых файлов. Версия 5.2

Для получения подсказки стартуйте программу с параметром "?" :
SISORT ?<Enter>

Содержание подсказки программы SISORT

Формат обращения к программе:

SISORT <имя_вх._файла> <имя_вых._файла> [/r] [/+<число>] [/-<число>]
[/n<число> | /b<число>] [/m<число> | /e<число>] [/@<число>] [/q]<Enter>

 /r        - сортировка по убыванию (если отсутствует, то по возрастанию);
 /+<число> - здесь <число> - позиция начала ключа сортировки, по умолчанию 1;
 /-<число> - здесь <число> - длина ключа сортировки, по умолчанию равна 32760;
 /n<число> - здесь <число> - номер первой сортируемой входной строки,
             по умолчанию 1 (не совместим с параметром "/b<число>");
 /b<число> - здесь <число> - смещение начала сортируемой части  входного
             файла, по умолчанию 0 (не совместим с параметром "/n<число>");
 /m<число> - <число> - максимальное число сортируемых входных строк, по умол-
             чанию - без ограничений (не совместим с параметром "/e<число>");
 /e<число> - здесь <число> - смещение конца сортируемой части, по умолчанию
             равно длине файла (не совместим с параметром "/m<число>").

                    Дополнительные параметры программы:
 /#<число> - здесь <число> - величина буфера  для операций ввода/вывода,
	     по умолчанию 32767 (не  должно превышать 32767);
 /@<число> - здесь <число> - величина буфера для сортируемой порции строк,
             по умолчанию 32767 (не должно превышать 65535);
 /q        - выбрать алгоритм "быстрой сортировки" (если отсутствует,
	     то алгоритм "сортировки посредством слияния списков").
Переменные среды DOS:

Программе могут быть переданы дополнительные параметры через переменные среды DOS (set-переменные).

SRT_TB - имя файла таблицы перекодировки ключей. Если переменная с этим именем отсутствует, то при сравнении ключей перекодировка не производится. Длина файла должна быть равна 256 байтов.

SRT_T1 и SRT_T2
Пути к местам размещения рабочих файлов задаются в переменных SRT_T1 и SRT_T2. Если обе эти переменные отсутствуют, то рабочие файлы размещаются там же, где размещается выходной файл. Если задана только переменная SRT_T1 (а SRT_T2 отсутствует), то оба рабочих файла размещаются в пути, указанном в переменной SRT_T1. Задавать только одну переменную SRT_T2 нельзя.

SISORT - общее описание программы

Программа предназначена для сортировки текстовых строк. Признаком конца строки является пара байтов 0D0A (16-ричн.) или один байт 0A. Если последняя сортируемая строка не содержит огрпничителя 0A, то программа исключает такую строку из числа сортируемых строк. Эта строка будет отнесена к несортируемой части файла. Это может случиться при неаккуратном задании лараметра "/e<число>". Максимальная допустимая длина строки 32760 байтов.

Может быть отсортирован не весь файл, а лишь его отрезок. Начало отрезка может быть задано либо номером первой сортируемой строки, либо смещением (см. параметры "/n<число>" и "/b<число>"). Эти параметры не могут быть заданы одновременно. Отсутствие обоих параметров равносильно заданию смещения 0 (начать сортировку с первой строки). Конец сортируемой части может быть указан либо числом сортируемых строк (параметр "/m<число>"), либо смещением конца сортируемой части (параметр "/e<число>"). Это смещение указывает на первый байт, не входящий в сортируемую часть. Оба этих параметра также не могут быть заданы одновременно. Если они оба отсутствуют, то файл сортируется до конца. Части входного файла, выходящие за границы сортируемого отрезка приписываются без изменения, соответственно, в начало и конец выходного файла.

Каждое смещение независимо друг от друга может быть задано либо в десятичной системе счисления (тогда оно должно начинаться с ненулевой цифры), либо в восьмеричной (тогда оно должно начинаться ровно с одного незначащего нуля), либо же в шестнадцатеричной (тогда оно должно начинаться с символов "0x" или "0X").

Строки сортируются в порядке лексикографического возрастания или убывания (см. параметр "/r") ключа сортировки, который задается позицией (не смешивать со смещением!) начала и длиной. Каждый из этих параметров ("/+<число>" и "/-<число>") может принимать значения от 1 до 32760. Если ключ выходит за пределы строки, то он дополняется пробелами.

Если требуется перекодировать ключи перед их сравнением, то пользователь может задать в переменной DOS SRT_TB полное имя файла таблицы перекодировки. Файл таблицы перекодировки должен иметь длину равную 256 байтов. Таблица состоит из новых кодов расположенных на местах старых кодов.

Программа считывает и сортирует, заданный отрезок входного файла по частям ("порциям"). Величины порций и их число зависят от величины буфера, отводимого под сортируемую "порцию" строк. По умолчанию под буфер отводится 32767 байтов. Величину буфера можно изменить, задав в параметре "/@<число>" требуемую величину буфера в байтах. Эта величина не должна превышать 65535.

Обработанные порции помещаются в один из двух рабочих файлов, которые помещаются в директорию выходного файла. Их имена образуются из имени выходного файла при помощи суффиксов: "si.$1t" и "si.$2t". Если такие имена уже существуют в директории выходного файла, то программа предложит сменить имя выходного файла и повторить старт программы. Для работы программы необходимо свободное пространство на том диске, куда помещается выходной файл, примерно равное удвоенной величине выходного файла. А именно, величина каждого из рабочих файлов равна:
<длина сортируемой части файла> + <число порций> * 4.

Перед созданием выходного файла один из рабочих файлов уничтожается.

Пользователь может направить рабочие файлы в другие директории, задав их пути в переменных среды DOS SRT_T1 и SRT_T2. Пути в этих переменных должны оканчиваться либо двоеточием ":", либо обратной косой "\".

Если обе эти переменные отсутствуют, то рабочие файлы размещаются там же, где размещается выходной файл. Если заданы обе переменные SRT_T1 и SRT_T2, то рабочие файлы размещаются, соответственно, в директориях, указанных в этих переменных. Если задана только переменная SRT_T1 (а SRT_T2 отсутствует), то оба рабочих файла размещаются в пути, указанном в переменной SRT_T1. Задавать только одну переменную SRT_T2 нельзя.

В программе реализованы два алгоритма сортировки алгоритм "сортировки посредством слияния списков" и алгоритм "быстрой сортировки"). В настоящей версии программы (в отличие от предыдущих версий) по умолчанию выбирается первый алгоритм. Для выбора второго следует задать параметр "/q". Смена умалчиваемого алгоритма вызвана тем, что, при незначительной разнице в эффективности алгоритмов, первый алгоритм устойчив, а второй нет. (Напомним, что алгоритм сортировки называется "устойчивым", если относительное расположение строк с одинаковыми ключами сохраняется.) Так как во многих случаях важно, чтобы сортировка была устойчивой, по умолчанию выбирается первый алгоритм.

Параметры программы могут быть заданы в любом порядке, однако имя входного файла должно быть задано раньше имени выходного файла. Заметим также, что все литеры, входящие в состав параметров (r, n, b, m, e) могут быть как строчными так и прописными.

Примечание. Величина буфера, задаваемого параметром /@<число>, должна быть больше 24-х и на 2 байта больше, чем максимальная длина строки сортируемого файла.

Следует иметь в виду, что при малых величинах буферов процесс сортировки замедляется.

Внимание! Выходной файл автоматически не заменяется. Для замены его следует предварительно удалить.
Так же следует удалять рабочие файлы после неудачного завершения сортировки. Их наличие может помешать успешному повторению сортировки.

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

swfndc.exe - контекстный поиск

Выделение из текстового файла строк, [не] содержащих контекст.
	(если таких строк нет, то вых. файл не открывается)
Параметры: имя вх.файла, имя вых.файла и необязательные опции
	с дефиса или слеша:
 -d= - контекст (без пробелов);
 -f= - файл, содерж. контекст (м.б. с пробелами.
	Если приводится не вся строка, то без признака конца строки);
 -u  - не различать регистр (умолч. различать).
 -n  - выделение строк, не содержащих контекст (умолч. содержащих).
 -p= - позиция контекста (с 1) (умолч. любая).
Ограничения реализации:
 - величина каждой строки не более 32760 байт (при -u - 16379);
 - длина контекста не более 128 байт.

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

swpissn2.exe - подсчет одинаковых строк

Параметры:
  1-й - имя вх.файла
  2-й - имя вых.файла

Программа обрабатывает отсортированный (например, программой sisort.exe) файл (она так думает), и подсчитывает количество совпадающих подряд идущих строк. Формируется файл, в который записываются только различные варианты строк, при этом каждая из них префиксируется количеством повторений строки (6 байтов с ведущими пробелами) и пробелом разделителем (всего в префиксе 7 байтов).

Ограничение реализации:
  - величина каждой строки не более 16000 байт

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

swd0a.exe - удаление двух последних символов файла

обычно это символы конца строки (0D0A)

Параметры:
  1-й - имя файла
  2-й - (необяз.) кол-во удаляемых символов. Умолч. 2 *

Программа просто меняет длину файла (без перезаписи, [я так думаю]).

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

swsubd.exe - удаление нескольких колонок

Параметры:
  1-й - имя вх.файла
  2-й - имя вых.файла
  3-й - позиция начала удаления
  4-й - количество удаляемых колонок

Как бы вырезается прямоугольник из текста файла. В этом участвуют все строки файла.

Ограничение реализации:
  - величина каждой строки не более 32000 байт

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

swsub0.exe - удаление в строках ведущих нулей и пробелов

Параметры:
  1-й - имя вх.файла
  2-й - имя вых.файла

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

Ограничение реализации:
  - величина каждой строки не более 1000 байт (конечно, можно сделать больше)

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

swtmon.exe - вставка в текст содержимого других файлов

Программа формирования вых. файла по шаблону путем вставки текстов других файлов.

Формат обращения: swtmon <имя файла шаблона> <имя вых.файла>

В файле шаблоне отыскиваются последовательности вида "?имя_файла?".
Допускаются имена файлов, включающие букву диска и путь (не допускаются только относительные пути с возвратом типа "..\имя_файла")
В выходной файл записывается копия файла шаблона, в которой вместо каждой такой последовательности вставляется полный текст соответствующего файла.
Если такой файл не найден, то его текст считается пустым (выдается предупреждение в stdout).

Контекст, содержащий знаки вопроса, и не опознанный как имя файла, заключенное в вопросики, остается без изменений.

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

swtmons.exe - обработка списка значений

см. также swtmonsm
Программа формирования вых. файла по списку и по шаблону.

Формат обращения: swtmons <имя файла списка> <имя файла шаблона> <имя вых.файла>
Ограничения реализации:
 - строка файла списка <=  256 символов
 - длина файла шаблона <= 2048 символов

Для каждого значения из списка (каждое значение списка занимает строку) в выходной файл записывается своя копия файла шаблона, в которой вместо последовательности символов "*N*" вставляется соответствующее значение из списка (такая последовательность может встречаться в шаблоне несколько раз).
Есть еще одна форма этой последовательности "*N*<позиция,длина>". При этом вставляется не весь элемент списка, а только его часть, выделенная с указанной позиции (нумерация с 1) и указанной длины. Длину вместе с предшествующей запятой можно опустить. В этом случае выделяется часть элемента списка с указанной позиции и до конца этого элемента.

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

swtmonsm.cm - обработка многозначного списка

Программа формирования вых. файла по многозначному списку и по шаблону (является развитием swtmons).

Под многозначным списком понимается массив строк (список), каждая из которых содержит несколько значений, разделённых знаком табуляции. Такой формат файла получается при выгрузке таблицы Excel в виде текста.

Формат обращения:
refal swtmonsm.cm имя_файла_списка <имя файла шаблона >имя вых.файла

Ограничения реализации:
- т.к. чтение шаблона осуществляется функцией GI, то использование в шаблоне пустых строк недопустимо;
- сумма длины шаблона, максимальной длины строки и наиболее длинного результата подстановки не должна превышать ограничений реализации рефала (около 32К).

Для каждого значения элемента списка (каждый элемент списка занимает строку и может состоять из нескольких значений разделённых символом табуляции) в выходной файл записывается своя копия файла шаблона, в которой вместо последовательности символов "*N<порядковый_номер_значения_в_элементе_списка>*" вставляется соответствующее значение из списка (такая последовательность может встречаться в шаблоне несколько раз).
Эта последовательность может быть дополнена указанием позиции и длины в угловых скобках "<позиция,длина>". При этом вставляется не весь элемент списка, а только его часть, выделенная с указанной позиции (нумерация с 1) и указанной длины. Длину вместе с предшествующей запятой можно опустить. В этом случае выделяется часть элемента списка с указанной позиции и до конца этого элемента.

Для совместимости с программой swtmons порядковый номер значения равный 1 (единице) можно опускать.

Предусмотрено специальное значение с номером 0 (*N0*), содержащее номер элемента списка (строки).

Пример шаблона:
UPDATE ОрганизацииРАСХН set OrgName='*N3*' where OrgCode='*N*';

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

swcopy_e.exe - вставка в текст содержимого переменных окружения

Программа формирования вых. файла по шаблону путем вставки значений переменных окружения.

Формат обращения: swcopy_e <имя файла шаблона> <имя вых.файла>

В файле шаблоне отыскиваются последовательности вида "%имя_переменной%".
Имена переменных должны быть записаны прописными буквами.
В выходной файл записывается копия файла шаблона, в которой вместо каждой такой последовательности вставляется значение соответствующей переменной (или пусто).

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

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

swcmp.exe - диалоговое сравнение текстовых файлов (содержимого)

Формат обращения: swcmp <имя файла1> <имя файла2>

Программа параллельно читает и сравнивает строки двух файлов. При первом же различии программа выдает разнящиеся строки на экран (с 3-й и 13-й строки не более чем по 780 символов) с указанием порядковых номеров строк в каждом файле и ждет реакции от клавиатуры. Позиция первого различия отмечается инверсией цвет-фон.

Управление:
Esc - Завершение работы
Символы
1 - перейти к сравнению со следущей строки 1-го файла
2 - перейти к сравнению со следущей строки 2-го файла
3 - перейти к сравнению со следущей строки в обоих файлах
8 - при отображении строк сменить кодировку русских букв dos-win и обратно. При перекодиковке из win цифра 2 в начале 2-й строки заменяется на w.

Пример выдачи (при сравнении этого файла с предыдущей версией):

1\0000074: <li><a href="#swcmp">swcmp.exe - фшрыюуютюх ёЁртэхэшх ЄхъёЄютvї Їрщыю
т (ёюфхЁцшьюую)</a>

2\0000074: <li><a href="#swcmpf">swcmpf.exe - ёЁртэхэшх Їрщыют (ёюфхЁцшьюую)</a>
нажали 8
1\0000074: <li><a href="#swcmp">swcmp.exe - диалоговое сравнение текстовых файло
в (содержимого)</a>

w\0000074: <li><a href="#swcmpf">swcmpf.exe - сравнение файлов (содержимого)</a>
При достижении конца файла выводится специальное значение <EOF>. Например:
1\0000008:
<EOF>
* В примерах для наглядности убраны лишние пустые строки.

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

swcmpf.exe - сравнение файлов (содержимого)

Программа формирования кода возврата в зависимости от содержимого файлов, указанных параметрами.

Формат обращения: swcmpf <имя файла1> <имя файла2>

Формирует ненулевой код возврата в случае несовпадения содержимого файлов.
Этот код возврата можно проверить командой
if errorlevel 1 goto e
т.е. перейти к метке :e , если код возврата больше или равен 1 (не равен нулю)

В версии от 2002.10.09

	   errorlevel 0, если файлы равны
	   errorlevel 3, если не равны длины файлов
	   errorlevel 1, если 1-й файл лексикографически меньше
	   errorlevel 2, если 2-й файл лексикографически меньше
	   errorlevel 4, если не удалось открыть один из файлов

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

swcmpfd.exe - сравнение даты-времени последнего изменения файлов

Программа формирования кода возврата в зависимости от даты-времени последнего изменения файлов, указанных параметрами.

Формат обращения: swcmpfd <имя файла1> <имя файла2>

Формирует ненулевой код возврата в случае несовпадения даты-времени последнего изменения файлов.

	errorlevel 0, если времена изменения файлов равны
	errorlevel 1, если 1-й файл менялся раньше
	errorlevel 2, если 2-й файл менялся раньше

Этот код возврата можно проверить командами:
if errorlevel 2 goto e2
if errorlevel 1 goto e1

т.е. перейти к метке :e2 , если второй файл менялся раньше,
перейти к метке :e1 , если раньше менялся первый файл
и продолжить выполнение со следующего оператора, если дата-время изменения файлов совпадают (обычно это бывает, если файлы просто являются копиями, например, полученными командой copy).

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

swcmpfl.exe - сравнение длин файлов

Программа формирования кода возврата в зависимости от длин файлов, указанных параметрами.

Формат обращения: swcmpfl <имя файла1> <имя файла2>

Формирует ненулевой код возврата в случае несовпадения длин файлов.
Этот код возврата можно проверить командой
if errorlevel 1 goto e
т.е. перейти к метке :e , если код возврата больше или равен 1 (не равен нулю)

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

swcatal3.exe - построчное слияние двух текстовых файлов

Программа формирования вых. файла путем приписывания содержимого строк второго входного файла в конец строк первого входного файла.

Формат обращения: swcatal3 <имя вх.файла1> <имя вх.файла2> <имя вых.файла>

Количество строк выходного файла равно минимуму из количеств строк входных файлов.

Ограничение реализации:
- суммарная длина строк входных файлов не должна превышать 1000 символов
   (вообще говоря легко увеличить до 32К, но ... без нужды - лень)

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

swflen.exe - подсчет числа строк в текстовом файле

Программа подсчитывает число строк в текстовом файле определенном 1-м параметром, и выводит результат в stdout.

Ограничение реализации:
- максимальная длина строки входного файла не должна превышать 32000 символов

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

swptb.exe - вставка (удаление) табуляции

Параметры:
 1) имя вх.файла
 2) имя вых.файла
 3) режим работы U - удаление табуляции (умолчание - вставка)

Программа заменяет пробелы на табуляцию (или наоборот) так, чтобы при просмотре в Norton или Far (или Turbo C) вид текста не изменился (шаг табуляции 8). Внутри констант ограниченных апострофами и/или двойными кавычками замена не производится.

Ограничение реализации:
- максимальная длина строки входного файла не должна превышать 300 символов (программа писалась в 1995 году, с тех пор больше не требовалось :-) ).

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

swdate2.exe - получение текущих даты и/или времени

Формат обращения:
swdate2 файл_шаблона вых.файл [a]
	где a - признак дозаписи в вых.файл
	по шаблону осуществляется замена:
	   d - две цифры дня
	   m - две цифры месяца
	   y - две цифры года
	   Y - четыре цифры года
	   H - две цифры часов
	   M - две цифры минут
	   S - две цифры секунд

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

day.exe - получение номера дня недели (написана на Delphi)

Формат обращения:
day >вых.файл

Программа записывает в выходной файл строку с номером дня недели. Значения [1..7]. 1 - воскресенье.
Может использоваться при выполнении некоторых действий только в определенные дни недели

Исходный текст (файл day.dpr):
program day;
{$APPTYPE CONSOLE}
uses
  SysUtils;
begin
 writeln(inttostr(DayOfWeek(date)));
end.

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

swtpath.exe - формирование bat-файла возврата в текущую директорию

Формат обращения:
swtpath имя_выходного_файла

Формируются три строки:

@ECHO OFF
буква_текущего_диска:
CD путь_от_корня_диска_к_текущей_директории
(без символа "\" в конце пути)

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

sw_arh1.exe - получение списка файлов в файловой структуре директории (DOS)

 Программа создает список имен файлов диска
 Параметры:
 1-й - имя выходного файла со списком
 2-й - имя диска (C:) или путь
пример вызова:
sw_arh1.exe Y:\BD\TEXTS\N1 Y:\EDD\Q
результат:
20010921 1312 Y:\EDD\Q\0000\001\01\0001.FRF
. . .
Аналогичная программа на рефале, обрабатывающая результат команды dir вида
dir N:\Cnshb\*.* /S
для операционной системы Microsoft Windows XP [Версия 5.1.2600] следующая:
a =/0/k/b/()k/G0A/..
* Содержимое папки N:\Cnshb\AVP\AutoPatches\windows
*
*15.06.2007  13:52    <DIR>          ..
*18.04.2007  16:18           724 627 kav5.0.205patch_winwks_upd.exe
b w0=
  w0' Содержимое папки 'epsa=k/b/(ep)k/G0A/..
  w0sa=k/b/w0k/G0A/..
  w0' 'ea=k/b/w0k/G0A/..
  w0e1'    <DIR> 'ea=k/b/w0k/G0A/..
  w0e1sa=k/b/k/f/w0k/FIRST//36/e1..k/G0A/..
f (e0)(e1)e2=k/P/k/dat/e1.e0'\'e2.(e0)
dat s1s2'.'s3s4'.'s5s6s7s8ee=s5s6s7s8'.'s3s4'.'s1s2ee
FIRST sne1=k/FIRST1//0/sn()e1.
FIRST1 snsne1=e1
       sisn(e1)='*'e1
       sisn(e1)w2e3=k/FIRST1/k/P1/si.sn(e1w2)e3.

результат:
2007.04.18  16:18           724 627 N:\Cnshb\AVP\AutoPatches\windows\kav5.0.205patch_winwks_upd.exe

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

swsave1.exe - формирование нескольких файлов из одного

Параметры:
	1) имя вх.файла

Программа делит входной текстовый файл на несколько выходных, записываемых в текущую директорию, по команде:

./SAVE <имя_файла> указанной с первой позиции во входном файле.
Здесь <имя_файла> должно быть DOS'овским

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

swisonf4.exe - исследование файла документов в формате ISO-2709

    ФУНКЦИЯ
    Программа пишет в выходной файл документы в виде:
    поле [метка,  уровень (если есть), индикатор (если есть),
идентификатор (если есть)], значение поля (без разделителей),
конец строки.
    В начале  каждого документа пишутся 4 специальных строки:
    1-я - два пробела и символ '0';
    2-я - текст 'Status[5]:' и значение байта  лидера  записи
со смещением 5;
    3-я - текст 'Type of record[6]:' и значение  байта лидера
записи со смещением 6;
    4-я - текст 'Bibliographic level[7]:'  и  значение  байта
лидера записи со смещением 7.
    После обработки файла в поток STDOUT (на экран) выводится
статистика по встретившимся в документах подполям.

    ПАРАМЕТРЫ
    1-й - путь и имя входного файла.
    2-й - путь и имя выходного файла.
    3-й - (необяз.) строка из букв:
           P - игнорировать индикатор;
           I - формат CDS/ISIS.
    Если в 3-м параметре указано значение P (загл.  лат.), то
при формировании  выходного файла и статистики индикаторы по-
лей заменяются пробелами.
    Если в 3-м параметре указано значение I (загл.  лат.), то
при анализе входного файла игнорируется разбиение на строки и
разделителем подполей считается символ '^'.

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

swisof0.exe - конвертирование выходного файла ISISа в текстовый вид (по полям)

Параметры:
  1-й - имя вх.файла
  2-й - имя вых.файла

Входным файлом является входной (он же выходной) формат ППП CDS/ISIS (ISO 2709).

Выходной файл состоит из строк, каждая из которых содержит значение одно из полей документа БД. При этом первые три символа - это метка этого поля. Каждый документ начинается со специальной строки, метка которой символы два пробела и нуль.

В stdout записывается протокол работы и таблица статистики. Они содержат количество обработанных документов и полей, а также информацию о каждом поле: метка, количество, минимальная, максимальная и средняя длина.

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

swfiso1.exe - конвертирование текстового файла во входной формат ISISа

Параметры:
  1-й - имя вх.файла
  2-й - имя вых.файла

Входной файл состоит из строк, каждая из которых содержит значение одно из полей документа БД. При этом первые три символа - это метка этого поля. Каждый документ начинается со специальной строки, метка которой символы два пробела и нуль.

Выходным файлом является входной (он же выходной) формат ППП CDS/ISIS (ISO 2709).

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

autotp.pcd - выполнение пакета команд CDS/ISIS

Программа должна быть вставлена в главное меню CDS/ISIS под пунктом G. Вызов осуществляется указанием в syspar.par строки

9=GX Программа читает в из текущей директории (при запуске ISIS) файл auto, и выполняет указанные в нем строки команд. Выполнение завершается когда очередная строка содержит в первой позиции символ "*".

Каждая строка файла auto должна описывать часть пакетной обработки, начинающейся и заканчивающейся в главном меню CDS/ISIS. При этом она должна полностью помещаться во внутренний буфер ввода CDS/ISIS (это обычно выполняется для строк короче 100 символов).

Во время выполнения используется промежуточный файл auto.$ в этой же директории. В момент запуска программы этот файл должен отсутствовать.

Пример файла auto:

IU^MX
SSind=030522^M^MX
ARtsearh^M
SPaa^MX
PP^M!0790^Maa^M^M^M^M@nap2^M999^M999!083!083^MN^M^M^M^M^Mnap2^M^Myy^MX
PP^M!0790^Maa^M^M^M^M@elarh^M999^M999!083!083^MN^M^M^M^M^Melarh^M^Myy^MX
*****

 

 

 

 

 

 

 

 

 

 

 

 


вверх

tsearh.pcd - проверка результата поиска CDS/ISIS на пустоту

Программа используется в файле auto программы autotp.

Программа проверяет количество найденных в предыдущем поиске документов. И, если это количество - нуль, завершает выполнение программы autotp (работу ISISа).

Суть в том, что если результат поиска пуст, то дальнейшие действия над его результатами (которых нет) бессмыслены и приведут к ошибке.

Пример использования программы (файл auto):

SSK=МЕЛИОРАЦИЯ +K=ВОДОПОЛЬЗОВАНИЕ +K=ЗЕМЛЕУСТРОЙСТВО +R=70+R=68.31+R=68.47.33+R=68.47.35^M^MX
ARtsearh^M
SS#1 + ((K=ПОЧВ + K=ПОЧВЫ)*(R=68.05.41+R=68.05.47+R=68.05.29))+(R=68.85.31 \^ R=68.85.31.39)^M^MX
ARtsearh^M
SS\? #2 (mfn>=300577)^M^MX
ARtsearh^M
SPaa^MX
ME^Mvodn.ISO^M^M^M1/999999^Maa^M^M^M^M^M^M^M^M^MX
*****

 

 

 

 

 

 

 

 

 

 

 

 


вверх

trnmfn.pcd - идентификация записи по словарю

Программа проверяет список, указанный в строках файла trn, по словарю БД CDS/ISIS.

Для каждой строки входного файла формируется строка в выходном файле trnmfn следующим образом:

 

 

 

 

 

 

 

 

 

 

 

 


вверх

swisof1.exe - конвертирование файла в формате ISO 2709 в текстовый вид (по полям)

Параметры:
  1-й - имя вх.файла
  2-й - имя вых.файла

Входным файлом является любой файл в формате ISO 2709 (входной/выходной для ППП CDS/ISIS, usmarc, unimarc, rusmarc и т.п.)

Выходной файл состоит из строк, каждая из которых содержит значение одно из полей документа. При этом первые три символа - это метка этого поля. Каждый документ начинается со специальной строки, метка которой символы два пробела и нуль а дальше приведена специальная информация из лидера записи, позволяющая программе swfiso2.exe выполнить обратное преобразование.

В stdout записывается протокол работы и таблица статистики. Они содержат количество обработанных документов и полей, а также информацию о каждом поле: метка, количество, минимальная, максимальная и средняя длина.

Внимание! Программа удаляет хвостовые пробелы полей.

 

 

 

 

 

 

 

 

 

 

 

 


вверх

swfiso2.exe - конвертирование текстового файла в формат ISO 2709

Параметры:
  1-й - имя вх.файла
  2-й - имя вых.файла
  3-й - (необяз.) значение N - не удалять пробелы в конце полей

Входной файл состоит из строк, каждая из которых содержит значение одного из полей документа. При этом первые три символа - это метка этого поля. Каждый документ начинается со специальной строки, метка которой символы два пробела и нуль. В этой строке может также находиться специальная информация подготовленная программой swisof1.exe. В этом случае выходной файл будет совпадать с исходным для программы swisof1.exe файлом формата ISO 2709 (с точностью до удаленных пробелов в концах полей).

Выходным файлом является файл в формате ISO 2709.

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

refal.exe - выполнение программы на рефале

Рефал - это просто! См. Пример программы на рефале

 Программа интерпретатора рефала/2                  Автор: Стеллецкий В.
  (рабочая область 32760 звеньев                             14.11.2002)
  [несколько урезанная версия языка рефал/2 см. также http://www.refal.ru] 
 Параметры:
  1-й - имя файла программы "скомпилированной в форму интерпретации";
  2-й - (необяз.) имя входного файла для программы;
  3-й - (необяз.) имя файла "результата работы";
  4-й - (необяз.) номер шага начала прокрутки.
 Протокол работы и "печать" записываются в stdout
  (можно перенаправить в файл)
см. также Встроенные рефал-функции (машинные процедуры)
см. также Полезные рефал-функции (написанные на рефале)

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

swscr.exe - сохранение/восстановление экрана

Параметры:
  1-й - (путь и) имя файла сохранения экрана
  2-й - (необяз.) символ "R" для режима восстановления экрана

Программа работает в текстовой моде монитора с экраном из 25 строк (через видиопамять по адресу С800 или С000 для монохромных мониторов).
В файл сохранения записывается 4000 байтов (цвета и символы).
Внимание! Местоположение курсора и его форма не сохраняются.

При указании 2-м параметром символа "R", программа восстанавливает содержимое (видиопамяти) экрана из файла сохранения.

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

swscr_t.exe - получение текста с экрана

Параметры:
  1-й - имя вх.файла
  2-й - имя вых.файла

Программа из образа экрана, полученного программкой swscr.exe - сохранение/восстановление экрана, выделяет текстовую часть, разбивая ее на строки по 80 символов.

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

sw$del.exe - удаление файлов по списку

    НАЗНАЧЕНИЕ
    Программа предназначена  для  удаления  файлов по списку,
определенному 1-м параметром.  В списке каждое имя удаляемого
файла указано с новой строки.

    ФУНКЦИЯ
    Очевидна

    ПАРАМЕТРЫ
    1-й - путь и имя входного файла (списка).

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

swbtrep.exe - замена строк текста по базе Btrieve

Замена строк текста по базе Btrieve 
Параметры:
 1-й - имя вх. файла
 2-й - имя вых. файла (протокол работы)
 3-й - имя базы Btrieve
 4-й - (необяз.) максимальная длина ключа в базе Btrieve (умолч. 10)
 5-й - (необяз.) строки со значениями NAM и TXT (префиксы обрабатываемых строк)
Заменяемая строка:
NAM<идентификатор==ключ см. 4-й параметр>
Заменяющая строка:
TXT<текст из базы Btrieve>
 Строки не должны превышать 32760 символов

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

swemail.exe - отправка электронного письма

Параметры:
 1-й - имя вх. управляющего файла
Программа формирует обращение к почтовому серверу для отправки письма в соответствии с информацией, указанной во входном управляющем файле, описанном 1-м параметром.

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

swgeturl.exe - получение текста Web-страницы

Параметры:
 1-й - URL запрашиваемой страницы
Программа получает из интернет описанную 1-м параметром страницу, и записывает ее в выходной поток, который средствами операционной системы можно перенаправить в файл.

Пример обращения:
swgeturl.exe http://www.cnshb.ru/vniitei/sw/ >a

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

swcutd.exe - разбиение текстового файла на части(порции) определенного размера

Разбиение текстового файла на части(порции) определенного размера. Можно сохранять целостность документов, если указать признак начала документа (признак должен располагаться с начала строки, разумеется). Если этот признак не указан (опции -d или -f) - каждая строка считается документом.

Результирующие части имеют расширения .001, .002 и т.д.

Параметры: имя вх.файла и необязательные опции с дефиса или слеша:
 -n= - макс. кол-во док-тов(строк) в порции;
 -s= - макс. размер порции (умолч. -s=64K
	можно писать K-килобайт, M-мегабайт, если буква не указана - в байтах);
 -p= - путь записи результата (умолч. текущий);
 -d= - признак начала док-та (без пробелов);
 -f= - файл, содерж. начало док-та (м.б. с пробелами.
	Если приводится не вся строка, то без признака конца строки);
 -z  - 36-ричная нумерация порций (умолч. 10-чная).
Ограничения реализации:
 - величина каждого док-та(строки) не более 32760 байт;
 - длина признака начала док-та не более 128 байт;
 - макс. кол-во порций 999 или 46655 (36**3-1) в зависимости
	от наличия опции -z.

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

sw_nums.exe - выделение отдельной строки или ее части в отдельный файл

Программа переносит число из файла в отдельный файл

Если 3-й параметр нач. с буквы S, то не число, а SUBSTR строки. При этом 4-й и 5-й параметры не используются.

Параметры:
 1-й - имя вх. файла
 2-й - имя вых. файла
 3-й - (необяз.) номер строки, номер позиции в строке, кол-во знаков в числе
       (через запятую, позиция и кол-во знаков необяз.)
 4-й - (необяз.) кол-во знаков в выходном числе
 5-й - (необяз.) слагаемое м.б. со знаком минус
Ограничения реализации:
 - величина каждой строки не более 32000 байт;
 - пустые строки не допускаются

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

accesql3.exe - выполнение SQL-запроса

Параметров нет.
Программа читает входной поток и результат пишет в выходной поток.

1-я сторока определяет подключение к SQL-серверу. Например:

  Provider=SQLOLEDB.1;Persist Security Info=False;User ID=...;Password=...;Initial Catalog=...;Data Source=...

Следующие строки определяют sql-запросы. Каждый запрос должен записываться в одной строке.

Запросы SELECT должны быть по одному на строке. Слово SELECT должно быть указано большими буквами.

Другие запросы (например, INSERT, UPDATE) могут записываться по несколько в строке разделенные ";"

Строки, начинающиеся с ";", рассматриваются как комментарии.

В выходной поток копируются строки запросов и комментариев, а также результаты выполнения запросов SELECT в формате

  строка с названием поля
  строка со значением поля
  ....
  *****
строка со значением "*****" является признаком конца записи

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

sww-u16.exe - перекодировка WIN (1251) - Unicode (UTF-16)

Программа перекодирует файл виндусовской кодировки в UTF-16.

Пары символов, начинающихся с кодов 0x00-0x04, просто переставляются.
Для других символов действует правило: конвертируются русские буквы (заглавные и строчные, включая "ё") и знак №. Остальные символы считаются принадлежащими к 0-й кодовой таблице и только дополняются байтом 0x00.

Параметры:
 1-й - имя вх. файла
 2-й - имя вых. файла

 

 

 

 

 

 

 

 

 

 

 

 

 


вверх

swisisu_.exe - универсальная перекодировка

Программа перекодирует файл в соответствии с таблицей, заданной 3-м параметром.

Таблица перекодировки формируется по аналогии с таблицей isisuc.tab ППП CDS/ISIS. Единственное добавление - разрешены элементы-символы начинающиеся с символа S.

В stdout выдает таблицу использованных при перекодировке символов.

Параметры:
 1-й - имя вх. файла
 2-й - имя вых. файла
 3-й - имя файла таблицы перекодировки
Пример таблицы перекодировки DOS-WIN (при промотре в WIN-кодировке):
000 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015
016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031
032 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047
048 049 050 051 052 053 054 055 056 057 058 059 060 061 062 063
064 065 066 067 068 069 070 071 072 073 074 075 076 077 078 079
080 081 082 083 084 085 086 087 088 089 090 091 092 093 094 095
096 097 098 099 100 101 102 103 104 105 106 107 108 109 110 111
112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
SА  SБ  SВ  SГ  SД  SЕ  SЖ  SЗ  SИ  SЙ  SК  SЛ  SМ  SН  SО  SП 
SР  SС  SТ  SУ  SФ  SХ  SЦ  SЧ  SШ  SЩ  SЪ  SЫ  SЬ  SЭ  SЮ  SЯ
Sа  Sб  Sв  Sг  Sд  Sе  Sж  Sз  Sи  Sй  Sк  Sл  Sм  Sн  Sо  Sп 
176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191
192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207
208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223
Sр  Sс  Sт  Sу  Sф  Sх  Sц  Sч  Sш  Sщ  Sъ  Sы  Sь  Sэ  Sю  Sя
SЁ  Sё  242 243 244 245 246 247 248 249 250 251 S№  253 254 255