Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

12.12.2007, 01:34
|
|
Участник форума
Регистрация: 23.04.2007
Сообщений: 233
Провел на форуме: 671223
Репутация:
91
|
|
Парсер Txt файла
Доброго времени суток .
если у кого есть минутка , напишите плиз парсер который будет парсить текстовый файл вида :
Код:
123@mail.ru
123@rambler.ru
123@qwe.ru
И удалять все поля кроме рамблера .
Спасибо.
|
|
|

12.12.2007, 01:59
|
|
Постоянный
Регистрация: 05.06.2007
Сообщений: 335
Провел на форуме: 4319431
Репутация:
677
|
|
open(FILE, '<incom.txt');
while(<FILE>) {
print $_ if $_ =~ /rambler/;
}
юзать C:\>pars.pl > выходной файл
|
|
|

12.12.2007, 02:25
|
|
Участник форума
Регистрация: 23.04.2007
Сообщений: 233
Провел на форуме: 671223
Репутация:
91
|
|
Спасибо огромное
|
|
|

12.12.2007, 02:41
|
|
Участник форума
Регистрация: 22.10.2007
Сообщений: 138
Провел на форуме: 2454040
Репутация:
177
|
|
PHP код:
<?php
@set_time_limit(0);
$ft = fopen ("list.txt", "r");
while (!feof($ft))
{ $str = trim(fgets($ft, 100));
if (strpos($str,'@rambler.ru')>0)
{
$fd = fopen ("rambler.txt", "a+");
fwrite ($fd, $str);
fwrite ($fd, "\n");
fclose ($fd);
}
}
fclose ($ft);
?>
|
|
|

12.12.2007, 02:48
|
|
Участник форума
Регистрация: 06.06.2006
Сообщений: 213
Провел на форуме: 1628290
Репутация:
474
|
|
PHP код:
$fd = fopen ("rambler.txt", "a+");
fwrite ($fd, $str);
fwrite ($fd, "\n");
fclose ($fd);
Не думаю, что есть гуд открывать и закрывать файл внутри цикла.
Имхо перл в самый раз, а пшп тут, так скажем, отсасывает
|
|
|

12.12.2007, 16:50
|
|
Banned
Регистрация: 12.01.2007
Сообщений: 113
Провел на форуме: 4094601
Репутация:
495
|
|
Сообщение от C!klodoL
open(FILE, '<incom.txt');
while(<FILE>) {
print $_ if $_ =~ /rambler/;
}
юзать C:\>pars.pl > выходной файл
*лучше использовать строковое равно
Код:
#!perl
use strict;
use warnings;
my $file = shift||exit print "usage : $0 <file>";
open( my $F, '<',$file)|| exit print $!;
while( <$F> )
{
$_=~/\@(\w+)/;
print $_ if $1 eq 'rambler';
}
|
|
|

12.12.2007, 16:54
|
|
Постоянный
Регистрация: 03.08.2007
Сообщений: 367
Провел на форуме: 876216
Репутация:
209
|
|
Хм...не обязательно  ....это не тупое сравнение, это сравнение по шаблону ( =~ )
В твоем варианте лишний гемор с регекспом ))))
И еще хорошо было бы модификаторы io поставить в шаблоне  )
ЗЫЖ А то сталкивался с любителями писать мыла а-ля (@Rambler.Ru @RAMBLER.RU итд) ))))
ЗЗЫЖ В примере C!klodoL будет еще ловить мыла а-ля *rambler*@somehost.com.... лучше будет в шаблоне юзать что-нибудь типа \@rambler.ru
Ну это так, если уже по коду пошли )
Последний раз редактировалось biophreak; 12.12.2007 в 16:58..
|
|
|

12.12.2007, 17:00
|
|
Banned
Регистрация: 12.01.2007
Сообщений: 113
Провел на форуме: 4094601
Репутация:
495
|
|
Смотрим примеры которые дал ТС
Теперь в парсер который написал C!klodoL
положим мыло ramblerko@gmail.com
biophreak прикольно отредактировал не успел я ответ написать .
Еще раз повторяю ориентируемся на примеры ТС
Последний раз редактировалось demonoid; 12.12.2007 в 17:05..
|
|
|

12.12.2007, 17:05
|
|
Постоянный
Регистрация: 03.08.2007
Сообщений: 367
Провел на форуме: 876216
Репутация:
209
|
|
Добавляем ровно 4 символа в пример C!klodoL =)) :
open(FILE, '<incom.txt');
while(<FILE>) {
print $_ if $_ =~ /\@rambler/io;
}
Вуаля  )))
Ну примеры, он видимо тут и придумывал, а ктож знает какая там у него база мыл....  ))))
|
|
|

12.12.2007, 17:29
|
|
Постоянный
Регистрация: 05.06.2007
Сообщений: 335
Провел на форуме: 4319431
Репутация:
677
|
|
Сообщение от biophreak
Добавляем ровно 4 символа в пример C!klodoL =)) :
open(FILE, '<incom.txt');
while(<FILE>) {
print $_ if $_ =~ /\@rambler/io;
}
Вуаля  )))
Ну примеры, он видимо тут и придумывал, а ктож знает какая там у него база мыл....  ))))
но тогда может попасть мыло типа @rambler.com 8)
если уж совсем точно то;
open(FILE, '<incom.txt');
while(<FILE>) {
print $_ if $_ =~ /\@rambler\.ru/i;
}
Последний раз редактировалось C!klodoL; 12.12.2007 в 17:35..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|