народ , может у кого-то есть , или кто написать может : парсер текстовых файлов есть файл вида Code: <Unnamed>:::mmmmm: <Unnamed>:::1401288: <Unnamed>:::general: <Unnamed>:::dryu: <Unnamed>:::1513: надо чтоб парсер убирал последный символ строки . т.е. ':' и ::три двоеточия) менял на ; (точку с запятой) Заранее огромное спасибо.
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 "Отработало!!!"; ?>
Просто тренировка Code: #!perl use strict; use warnings; my $s ='<Unnamed>:::1513:' =~ /<(.+)>:::(.+):/g; print "$1;;;$2"; Code: C:\>p.pl Unnamed;;;1513
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 "Отработало!!!"; ?>
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_file, NULL, $echo ); } } echo( $echo ); ?>
Согласен. Но была заготовка - переделал под просьбу Xszz. Я же только учусь . Когда писал опирался больше на логику алгоритма.... взять файл, прочитать построкам, найти нужное, поменять и т.д.... Спасибо за критику Учту. Неожидал такой востребованности.... странно плюсики поставили те кто не просил.... интересно, неужели так часто применяются такие скрипты.
Java PHP: package temppack; import java.io.*; public class Main { public static void main(String[] args) { try { BufferedReader br = new BufferedReader(new FileReader("inputfile.txt")); FileOutputStream fos = new FileOutputStream("out.txt"); String l=null; while ((l=br.readLine())!=null) { l=l.substring(0,l.length()-1).replaceAll(":::",";"); if (!l.contains("<Unnamed>")) fos.write((l+"\n").getBytes()); } br.close(); fos.close(); } catch (IOException ex) { System.err.println("Ошибка нах!"); ex.printStackTrace(); } } }