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


Автор: Mindaly 17.7.2011, 15:05
Потребовалось скопировать 3721255 строчек из одного файла в другой. 
Я в Perl новичок, не подскажите как сделать так, чтобы не записывалась 3721256-я строка, представляющая собой пустую строку? 
Код

open($my_file1,">:raw:utf8", "pass.lst"); #открываем для записи
open($my_file2,"<", "all.lst"); #открываем для чтения 

while (($line = <$my_file2>) && ($. <= 3721255) ) {
 chomp $line; # убрать \n в последнем поле
 print ($my_file1 "$line\n");
 } 
close(my_file1);
close(my_file2);

Автор: dixoNICH 17.7.2011, 17:02
Код

$/ = \0;
open F, "1.txt";
open P, ">2.txt";
$file1 = <F>;
print P $file1;
close F;
close P;

Автор: Mindaly 17.7.2011, 17:36
Цитата(dixoNICH @ 17.7.2011,  17:02)
Код

$/ = \0;
open F, "1.txt";
open P, ">2.txt";
$file1 = <F>;
print P $file1;
close F;
close P;

Вы копируете весь файл, а мне надо только первые 3721255 строчек smile 


Автор: dixoNICH 17.7.2011, 18:01
Код

open($my_file1,">:raw:utf8", "pass.lst"); #открываем для записи
open($my_file2,"<", "all.lst"); #открываем для чтения 

while (($line = <$my_file2>) && ($. <= 3721255) ) {
 $o.=$line;
 } 
chomp $o;
print $my_file1 $o;
close(my_file1);
close(my_file2);

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