Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Системное программирование > Работа с файлами.


Автор: study 22.9.2004, 16:16
Народ, новая задача, существуе файл, его надо разбить на два по определённому признаку и в каждом новом файле должна содержаться первая строка исходного файла, как это сделать???

open(FP,"c:/......") or die "$!"; # исходный файл
open(FP1,">c:/......") or die "$!"; # 1-ый файл для записи
open(FP2,">c:/......") or die "$!"; # 2-ой файл для записи
while(<FP>)
{
print FP1 if /условие1/;
print FP2 if /условие2/;
}
close(FP);
close(FP1);
close(FP2);

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

Автор: Secandr 22.9.2004, 16:30
Вставь счётчик

Код
open(FP,"c:/......") or die "$!"; # исходный файл
open(FP1,">c:/......") or die "$!"; # 1-ый файл для записи
open(FP2,">c:/......") or die "$!"; # 2-ой файл для записи
$i=0;
while(<FP>)
{
print FP1 if /условие1/;
print FP2 if /условие2/;
$i++;
}
close(FP);
close(FP1);
close(FP2);


и добавь в своё if /условие1/;

Код
and ($i==0)

Автор: study 22.9.2004, 17:03
Secandr ещё раз огромное спасибо всё работает!!!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)