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

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

Xszz 04.11.2007 00:29

парсер
 
народ , может у кого-то есть , или кто написать может :
парсер текстовых файлов
есть файл вида
Код:

<Unnamed>:::mmmmm:
<Unnamed>:::1401288:
<Unnamed>:::general:
<Unnamed>:::dryu:
<Unnamed>:::1513:

надо чтоб парсер убирал последный символ строки . т.е. ':' и :::(три двоеточия) менял на ; (точку с запятой)
Заранее огромное спасибо.

inv 04.11.2007 00:35

пхп
preg_replace('/[\x3A]+/',';'

Red_Red1 04.11.2007 00:40

PHP код:

<?
$rez_file 
fopen("rez.txt","w");//Создаю файл для результата
$file_array =  file ("fil2.txt"); //читаю нужный файл в массив
$count_str count ($file_array);
for (
$i 0$i $count_str$i++) //читаю массив строк из файла
{
  
$c=$file_array[$i];
  
$pattern "|(.*):::(.*):|is"
 if (
preg_match_all($pattern$c$out)) {
 
//print_r ($out);
 
$rez=$out[1][0].';'.$out[2][0].chr(13).chr(10);
 
fputs ($rez_file,$rez);}// запись в файл

  
fclose ($rez_file);// закрываю файлы
  
echo "Отработало!!!";
?>


Xszz 04.11.2007 00:52

Огромное человеческое спасибо !
++

demonoid 04.11.2007 11:04

Просто тренировка :)
Код:

#!perl
use strict;
use warnings;

my $s ='<Unnamed>:::1513:' =~ /<(.+)>:::(.+):/g;
print "$1;;;$2";

Код:

C:\>p.pl
Unnamed;;;1513


Xszz 04.11.2007 23:32

Народ , а как дописать , чтоб строки начинающиеся с <Unnamed> удалялись ?
Спасибо .

Red_Red1 05.11.2007 02:59

PHP код:

<? 
$rez_file 
fopen("rez.txt","w");//Создаю файл для результата 
$file_array =  file ("fil2.txt"); //читаю нужный файл в массив 
$count_str count ($file_array); 
for (
$i 0$i $count_str$i++) //читаю массив строк из файла 

  
$c=$file_array[$i]; 
  
$pattern "|(.*):::(.*):|is";  
 if (
preg_match_all($pattern$c$out)) 
  { 
    if (
$out[1][0]!='<Unnamed>')
     {
      
$rez=$out[1][0].';'.$out[2][0].chr(13).chr(10); 
      
fputs ($rez_file,$rez);
     }
  }
}  
  
fclose ($rez_file);// закрываю файлы 
  
echo "Отработало!!!"
?>


NOmeR1 05.11.2007 13:00

Red_Red1, извращённый код если честно.
PHP код:

<?

$file 
'txt.txt';
$echo file_get_contents($file);

foreach( 
file($file) as $in_file )
{
    if( 
preg_match('/^<Unnamed>/'$in_file) )
    {
        
$echo str_replace$in_fileNULL$echo );
    }
}

echo( 
$echo );

?>


Red_Red1 05.11.2007 13:08

Согласен. Но была заготовка - переделал под просьбу Xszz. Я же только учусь :). Когда писал опирался больше на логику алгоритма.... взять файл, прочитать построкам, найти нужное, поменять и т.д.... Спасибо за критику :) Учту.
Неожидал такой востребованности.... странно плюсики поставили те кто не просил.... интересно, неужели так часто применяются такие скрипты.

astrologer 05.11.2007 17:52

Можно использовать preg_grep и обойтись без цикла


Время: 18:28