Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Парсер Txt файла (https://forum.antichat.xyz/showthread.php?t=55588)

Xszz 12.12.2007 01:34

Парсер Txt файла
 
Доброго времени суток .
если у кого есть минутка , напишите плиз парсер который будет парсить текстовый файл вида :
Код:

123@mail.ru
123@rambler.ru
123@qwe.ru

И удалять все поля кроме рамблера .
Спасибо.

C!klodoL 12.12.2007 01:59

open(FILE, '<incom.txt');
while(<FILE>) {
print $_ if $_ =~ /rambler/;
}

юзать C:\>pars.pl > выходной файл

Xszz 12.12.2007 02:25

Спасибо огромное

vp$ 12.12.2007 02:41

PHP код:

<?php
@set_time_limit(0);
$ft fopen ("list.txt""r");
 while (!
feof($ft))
   { 
$str trim(fgets($ft100));
      if (
strpos($str,'@rambler.ru')>0)
        {
          
$fd fopen ("rambler.txt""a+");
            
fwrite ($fd$str);
            
fwrite ($fd"\n");
            
fclose ($fd);
        }
   }
    
fclose ($ft);
?>


ENFIX 12.12.2007 02:48

PHP код:

$fd fopen ("rambler.txt""a+"); 
            
fwrite ($fd$str); 
            
fwrite ($fd"\n"); 
            
fclose ($fd); 

Не думаю, что есть гуд открывать и закрывать файл внутри цикла.

Имхо перл в самый раз, а пшп тут, так скажем, отсасывает

demonoid 12.12.2007 16:50

Цитата:

Сообщение от 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';
}


biophreak 12.12.2007 16:54

Хм...не обязательно :)....это не тупое сравнение, это сравнение по шаблону ( =~ )
В твоем варианте лишний гемор с регекспом ))))
И еще хорошо было бы модификаторы io поставить в шаблоне :))

ЗЫЖ А то сталкивался с любителями писать мыла а-ля (@Rambler.Ru @RAMBLER.RU итд) ))))
ЗЗЫЖ В примере C!klodoL будет еще ловить мыла а-ля *rambler*@somehost.com.... лучше будет в шаблоне юзать что-нибудь типа \@rambler.ru
Ну это так, если уже по коду пошли )

demonoid 12.12.2007 17:00

Смотрим примеры которые дал ТС :D
Теперь в парсер который написал C!klodoL
положим мыло ramblerko@gmail.com
biophreak прикольно отредактировал не успел я ответ написать .
Еще раз повторяю ориентируемся на примеры ТС

biophreak 12.12.2007 17:05

Добавляем ровно 4 символа в пример C!klodoL =)) :

open(FILE, '<incom.txt');
while(<FILE>) {
print $_ if $_ =~ /\@rambler/io;
}

Вуаля :))))

Ну примеры, он видимо тут и придумывал, а ктож знает какая там у него база мыл.... :)))))

C!klodoL 12.12.2007 17:29

Цитата:

Сообщение от 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;
}


Время: 14:48