Отправляет email-рассылки с помощью сервиса Sendsay

[TC] програма

Здравствуйте, industry.

Есть такая надобность в программе которая могла бы делать такие вещи?
Имеется каталог с большим количеством книг rar<zip>txt и т.д. при этом
различные кодировки.Название файла какой либо из книг не информотивно.
Нужно чтобы программма раскрыла этот файл и скопировала в созданный
собственный файл название нужного файла, но и несколько строк из него,
да и затем перешла к следующему по списку.
Есть ли что нибудь похожее в наличии?
Представте, вас просят список книг, а несколько сотен или тысяч
открывать в ручную слишком тоскливо.

Ответить   Thu, 10 Nov 2005 06:41:28 +0200 (#472606)

 

Ответы:

Здравствуйте, Сергей Бабич.

Как правило, такие задачи решаются скриптовыми средствами (.bat, php, vbscript,
javascript, phyton). Дело в том, что нет смысла
создавать отдельную программу, так как малое изменение условий отбора делает
ее совсем непригодной. Допустим, вам захочется потом
еще и размер файла добавить в описание, а потом тип архива, а потом количество
слов на букву "Ё", а потом...

Я изпользую php: пятнадцать-двадцать строк кода, плюс поддержка конвертации
кодировок кириллицы, плюс регулярные выражения, плюс
встроенная поддержка zip... Пять мегабайт для интерпретатора -- это совсем небольшая
плата за такие удобства:)

Средства vbscript и jscript (javascript) уже встроены в операционные системы
Win 98, 2k, XP. Также в .bat lдля Win XP доступна
мощная команда for. Ее описание -- после подписи (обратите внимание на вариант
for /F)..
С уважением, Анатолий.
* * *

Выполнение указанной команды для каждого файла набора.

FOR %переменная IN (набор) DO команда [параметры]

%переменная Подставляемый параметр.
(набор) Набор, состоящий из одного или нескольких файлов.
Допускается использование подстановочных знаков.
команда Команда, которую следует выполнить для каждого файла.
параметры Параметры и ключи для указанной команды.

В пакетных файлах для команды FOR используется запись
%%переменная вместо %переменная. Имена переменных
учитывают регистр букв (%i отличается от %I).

Добавление поддерживаемых вариантов команды FOR при включении расширенной
обработки команд:

FOR /D %переменная IN (набор) DO команда [параметры]

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

FOR /R [[диск:]путь] %переменная IN (набор) DO команда [параметры]

Выполнение команды для каталога [диск:]путь, а также для всех
подкаталогов этого пути. Если после ключа /R не указано имя каталога,
выполнение команды начинается с текущего каталога.
Если вместо набора указана только точка (.), команда выводит список
всех подкаталогов.

FOR /L %переменная IN (начало,шаг,конец) DO команда [параметры]

Набор раскрывается в последовательность чисел с заданными началом, концом
и шагом приращения. Так, набор (1,1,5) раскрывается в (1 2 3 4 5),
а набор (5,-1,1) заменяется на (5 4 3 2 1)

FOR /F ["ключи"] %переменная IN (набор) DO команда [параметры]
FOR /F ["options"] %variable IN ("literal string") DO command [command-parameters]
FOR /F ["options"] %variable IN ('command') DO command [command-parameters]

или, если использован параметр usebackq:

FOR /F ["options"] %variable IN (filenameset) DO command [command-parameters]
FOR /F ["options"] %variable IN ('literal string') DO command [command-parameters]
FOR /F ["options"] %variable IN (`command`) DO command [command-parameters]

Набор содержит имена одного или нескольких файлов, которые по очереди
открываются, читаются и обрабатываются. Обработка состоит в чтении
файла, разбивки его на отдельные строки текста и выделения из каждой
строки заданного числа подстрок (в том числе нуля). Затем найденная
подстрока используется в качестве значения переменной при выполнении
основного тела цикла. По умолчанию ключ /F выделяет из каждой строки файла
первое слово, очищенное от окружающих его пробелов. Пустые строки
в файле пропускаются. Необязательный параметры "ключи" служит для
переопределения заданных по умолчанию правил обработки строк. Ключи
представляют собой заключенную в кавычки строку, содержащую указанные
параметры. Ключевые слова:

eol=c - определение символа комментариев в конце строки
(допускается задание только одного символа).
skip=n - число пропускаемых при обработке строк в начале
файла.
delims=xxx - определение набора разделителей для замены заданных
по умолчанию пробела и знака табуляции.
tokens=x,y,m-n - определение номеров подстрок, выделяемых из каждой
строки файла и передаваемых для выполнения в тело
цикла. При использовании этого ключа создаются
дополнительные переменные. Формат m-n представляет
собой диапазон подстрок с номерами от m по n. Если
последний символ в строке tokens= является
звездочкой, создается дополнительная переменная,
значением которой будет весь оставшийся текст в
строке после обработки последней подстроки.
usebackq - применение новой семантики, при которой строки,
заключенные в обратные кавычки, выполняются как
команды, строки, заключенные в прямые одиночные
кавычки, являются строкой литералов команды, а
строки, заключенные в двойные кавычки, используются
для выделения имен файлов в списках имен файлов.

Поясняющий пример:

FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k

эта команда обрабатывает файл myfile.txt, пропускает все строки, которые
начинаются с символа точки с запятой, и передает вторую и третью подстроки
из каждой строки в тело цикла, причем подстроки разделяются запятыми и/или
пробелами. В теле цикла переменная %i используется для второй подстроки,
%j - для третьей, а %k получает все оставшиеся подстроки после третьей.
Имена файлов, содержащие пробелы, необходимо заключать в двойные кавычки.
Для того чтобы использовать двойные кавычки, необходимо использовать
параметр usebackq, иначе двойные кавычки будут восприняты как границы
строки для обработки.

Переменная %i явно описана в инструкции for, а переменные %j и %k
описываются неявно с помощью ключа tokens=. Ключ tokens= позволяет извлечь
из одной строки файла до 26 подстрок, при этом, не допускается
использование переменных больших чем буквы 'z' или 'Z'. Следует помнить,
что имена переменных FOR являются глобальными, поэтому одновременно не
может быть активно более 52 переменных.

Синтаксис команды FOR /F также позволяет обработать отдельную строку,
с указанием параметра filenameset, заключенным в одиночные кавычки.
Строка будет обработана как единая строка из входного файла.

Наконец, команда FOR /F позволяет обработать строку вывода другой команды.
Для этого следует ввести строку вызова команды в апострофах вместо набора
имен файлов в скобках. Строка передается для выполнения обработчику
команд CMD.EXE, а вывод этой команды записывается в память и
обрабатывается так, как будто строка вывода взята из файла. Например,
следующая команда:

FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i

выведет перечень имен всех переменных среды, определенных в настоящее
время в системе.

Операции подстановки ссылок на переменные команды FOR также расширены.
Допускается применение следующих синтаксических конструкций:

%~I - из переменной %I удаляются обрамляющие кавычки (")
%~fI - переменная %I расширяется до полного имени файла
%~dI - из переменной %I выделяется только имя диска
%~pI - из переменной %I выделяется только путь к файлу
%~nI - из переменной %I выделяется только имя файла
%~xI - из переменной %I выделяется расширение имени файла
%~sI - полученный путь содержит только короткие имена
%~aI - переменная %I расширяется до атрибутов файла
%~tI - переменная %I расширяется до даты /времени файла
%~zI - переменная %I расширяется до размера файла
%~$PATH:I - проводится поиск по каталогам, заданным в переменной
среды PATH, и переменная %I заменяется на полное
имя первого найденного файла. Если переменная PATH
не определена или в результате поиска не найден ни
ни один файл, то этот модификатор заменяется на пустую
строку

При объединении нескольких операторов можно получить следующие результаты:

%~dpI - переменная %I заменяется только на имя диска и путь
%~nxI - переменная %I заменяется только на имя файла и его
расширение
%~fsI - переменная %I заменяется только на полный путь с
краткими именами
%~dp$PATH:I - проводится поиск по каталогам, заданным в переменной
среды PATH, и переменная %I заменяется на имя диска
и путь к первому найденному файлу.
%~ftzaI - переменная %I заменяется на строку, выдаваемую
командой DIR

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

Ответить   "i_chay" Thu, 10 Nov 2005 09:50:44 +0400 (#472617)

 

Здравствуйте, участники рассылки.
Прошу прощения (и лично у Сергея Флейтина)...
разумеется, python... :)
С уважением, Анатолий.

Ответить   "i_chay" Thu, 10 Nov 2005 10:20:42 +0400 (#472621)

 

Здравствуйте, Анатолий,

Меня давно интересует php под виндоуз, увы руки никак не доходят. Лет
5 назад я пробовал ставить и отдельный интерпретатор php как isapi в
IIS, и как интегрированный пакет AppServer, куда включены apach, mysql
и php. До реальной работы дело тогда так и не дошло, а жаль.

Анатолий, если будет время и желание, пожалуйста, поделитесь своим
опытом работы с php. Меня в первую очередь интересует именно
виндузовая среда. Что в каком составе лучше устанавливать? Как
настраивать? Вы говорили о применении php в качестве универсального
для системы скриптового языка. А не могли бы Вы сказать несколько слов
относительно возможностей веб-программирования на php в среде виндоуз?
Из моего скудного опыта осталось впечатление, что php под виндоуз
имел заметные ограничения. Как это дело обстоит сейчас? Есть ли php5
для виндоуз? И вообще, что там нового в php5?

Господа подписчики, поделитесь опытом, пожалуйста. Наверное, всё это
можно в интернете узнать, но коли уже Вы знаете, просветите, не
дайте помереть неграмотным. :-)

--
С наилучшими пожеланиями
Владимир Лукьянов
Москва
mailto:lvu20***@y*****.ru

Ответить   Mon, 14 Nov 2005 13:30:49 +0300 (#474951)

 

5 есть для WIN и с Apache`м работает приличнно
Качать можно тут
http://www.php.net/downloads.php в
Windows Binaries

На мой взгляд под Win все то же самое, под Unix`ом свои особенности и
стабильность.

Ответить   "Denis" Mon, 14 Nov 2005 14:28:27 +0300 (#475120)