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

RusFAQ.ru: Программирование на языке Perl


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Perl / Перл

Выпуск № 88
от 24.03.2007, 23:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 168, Экспертов: 16
В номере:Вопросов: 1, Ответов: 1


Вопрос № 78999: Доброго времени суток: есть такая задача, удалить первую строку из файла, удалить в конце файла символ перевода строки и добавить в конец две строки. С горем пополам и с помощью коллег по изучению Perl'а удалось написать такой скрипт для обработки од...

Вопрос № 78.999
Доброго времени суток: есть такая задача, удалить первую строку из файла, удалить в конце файла символ перевода строки и добавить в конец две строки. С горем пополам и с помощью коллег по изучению Perl'а удалось написать такой скрипт для обработки одного файла:
my $line_1 = " Первая строка для добавления ";
my $line_2 = "Вторая строка для добавления ";
# --------------
my $file = $ARGV[0];
open $f, "<", "$file";
my @text = ();
# Считываю файл в массив удаляю символ переход строки
while ($line=<$f>) {
chop $line;
$line .=" ";
@text = (@text, $line)
}
close $f;
# Удаляю первую строку
splice(@text, 0, 1);
# Добавляю две строки
text = (@text, $line_1, $line_2);

open $f, ">", "$file";
truncate $f, 0;

print $f @text;
close $f;
но файлов многовато для обработки этим скриптом, как сделать для обработки группы файлов ? Файлы имеют расширение .txt размер 11-12 кбайт.
Отправлен: 19.03.2007, 23:21
Вопрос задал: Grekalov (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: dianacode
Доброе время суток, Grekalov

код::

my $openfold = ''; # ваш каталог, где ищем

# читаем список ваших txt файлов

opendir ET, $openfold;

my @listed = grep {!/^.+$/ and /.txt$/i and !(-d "$openfold/$_") and (-s "$openfold/$_")>=10240 } readdir ET;

closedir ET;


# synopsis для описанного выше

# and (-s "$openfold/$_")>=10240 - проверяем размер файла, можете убрать, если не нужно

# and !(-d "$openfold/$_") - "это не каталог ?"

# !/^.+$/ - это не каталог верхнего уровня


for(@listed){

my $file_str = $_; # в переменной $file_str в каждый момент цикла у вас сейчас лежит имя одного из ваших текстовых файлов



#........

#........

# а тут можете вставить ваш вышепредложенный код на обработку файла

}

с уважением, удачи

---------
There is more than one way to do it.

Ответ отправила: dianacode (статус: Студент)
Ответ отправлен: 20.03.2007, 08:11


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
ООО "Мастер-Эксперт Про", Москва, 2007
Авторские права | Реклама на портале
Версия системы: 4.46 от 18.03.2007
Яндекс Rambler's Top100

В избранное