Форум сетевых администраторов
Показаны 7 сообщений на этой странице

Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- Другие (http://netadmin.ws/forum/forumdisplay.php?forumid=19)
-- Количество массивов в директории (http://netadmin.ws/forum/showthread.php?threadid=137)


Помещено Gyrus 24-09-2001 в 19:07:

Question Количество массивов в директории

Я в програмировании новичок и поэтому не могу никак сообразить, как посчитать все массивы в файлах с определенным расширением из определенной директории и их общее кол-во передать перменной?

Для одного файла это выглядит так:

open(DATA, "data/data.txt") || die "$!";
@DATA=<DATA>;
close (DATA);
$amount = @DATA;

Помогите плиз очень надо.
P.S. Сам конечно тоже буду думать.


Помещено Andrei 24-09-2001 в 20:34:

Re: Количество массивов в директории

quote:
Первоначальное сообщение от Gyrus
Я в програмировании новичок и поэтому не могу никак сообразить, как посчитать все массивы в файлах с определенным расширением из определенной директории и их общее кол-во передать перменной?

Для одного файла это выглядит так:

open(DATA, "data/data.txt") || die "$!";
@DATA=<DATA>;
close (DATA);
$amount = @DATA;

Помогите плиз очень надо.
P.S. Сам конечно тоже буду думать.



Точно не понял что тебе надо, но по коду думаю следующее


code:
#!/usr/bin/perl

$i=0;

print "Content-Type: text/html\n\n";

open(READ, "data/data.txt") || die "File not found";
@text = <READ>;
foreach $line (@text) {
$i++;
}
close(READ);

$result=$i;

print "$result";


Помещено Gyrus 24-09-2001 в 21:42:

Спасибо за ответ, но ты немного не понял меня.

Имелось ввиду, что есть много файлов в определенной директории и мне надо посчитать количество массивов (строк) во всех файлах с расширением txt и это значение передать переменной.

Сам я пока не придумал


Помещено Andrei 24-09-2001 в 21:50:

quote:
Первоначальное сообщение от Gyrus
Спасибо за ответ, но ты немного не понял меня.

Имелось ввиду, что есть много файлов в определенной директории и мне надо посчитать количество массивов (строк) во всех файлах с расширением txt и это значение передать переменной.

Сам я пока не придумал



Ты поясни вот что
Тебе надо передать "это значение" в сумму всех файлов?

то есть так
было просмотрено 2 файла и всего в них в сумме строк 15

или к примеру чтоб скрипт так писал
data.txt - 5 строк
data1.txt - 10 строк
тоесть для каждого файла отдельно

короче ты всё подробно напиши


Помещено Gyrus 24-09-2001 в 22:00:

quote:
Первоначальное сообщение от Andrei


Ты поясни вот что
Тебе надо передать "это значение" в сумму всех файлов?

то есть так
было просмотрено 2 файла и всего в них в сумме строк 15

или к примеру чтоб скрипт так писал
data.txt - 5 строк
data1.txt - 10 строк
тоесть для каждого файла отдельно

короче ты всё подробно напиши




Нет просто сумму строк в нужных мне файлах и все. Спасибо Андрей.


Помещено Andrei 25-09-2001 в 01:04:

Вот тебе скрипт
Меняй только
$ext - это расширение файлов которые надо смотреть
$dir - это путь к директории которую надо открывать


code:

#!/usr/bin/perl

$ext = "txt";
$dir = ".";

$i = "0";
$files = "0"; 

print "Content-Type: text/html\n\n";

opendir(RID,"$dir") || print "cant $!"; 

@linez = grep(/./,readdir(RID)); 
flock(8, RID); 
close(RID); 
 
foreach $struck (@linez) 
	{ 
	if (!(-d $struck)) 
		{ 
		if ($struck =~ /\.$ext$/i) 
			{ 
open(READ, "$struck") || die "File not found";
@text = <READ>;
foreach $line (@text) {
$i++;
}
close(READ);
$files++; 
			} 

	} 
} 

print "Всего прочитанно <b>$i</b> строк в <b>$files</b> файлах\n";

1;


Помещено Gyrus 25-09-2001 в 14:35:

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

open(READ, "$dir/$struck") || die "File not found $!";

Спасибо!


Формат времени GMT. Текущее время 07:56.
Показаны 7 сообщений на этой странице

Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.