Как рассортировать предложения?

Тема в разделе "Вопросы новичков", создана пользователем barbakan, 5 авг 2009.

Статус темы:
Закрыта.
  1. barbakan

    barbakan

    Регистр.:
    18 авг 2007
    Сообщения:
    345
    Симпатии:
    399
    Есть текстовый файл (мишанина) - нужно рассортировать что бы на выходе получился txt файл в одной строчке одно предложение. Как или чем это проще сделать?
     
  2. ar4ik

    ar4ik

    Регистр.:
    26 ноя 2007
    Сообщения:
    331
    Симпатии:
    95
    В каком нибудь нормальном текстовом редакторе(AkelPad например) выбери в меню Правка - Заменить
    Отметь галочкой что то типа Регулярные выражения (в AkelPad это навзывается Esc-последовательности)
    в "что" пишешь:
    .
    в "чем" пишешь
    .\n
    (можно и просто \n если знаешь отличия)
    Это предложения заканчивающиеся точкой, по аналоги с другими знаками (\?)
    Жмешь Заменить все
    Пробуй
     
    barbakan нравится это.
  3. betatest

    betatest

    Регистр.:
    3 дек 2007
    Сообщения:
    517
    Симпатии:
    127
    лови пхп



    test.txt - меняешь на нужный с мешаниной
    out.txt - имя полученного файла
    $split_arr - массив с признаками для разбивки

    PHP:

    <?php

    $inputfile
    ="test.txt";
    $outfile="out.txt";

    $split_arr=array(".","?","!");

    $file=fopen($inputfile,"rb");
    if(
    $file
        {
            while(!
    feof($file))
                {
                    
    $str=$str.trim(fgets($file));
                }
            
    fclose($file);
        }
    else    { echo(
    'Input File Error'); die; }

    $out_arr=array($str); 

    foreach(
    $split_arr as $splitarg)
        {
            
    $out_arr_tmp=array();
            foreach(
    $out_arr as $str)
                {
                    
    $out_arr_tmp1=explode($splitarg,$str);
                    
    $tmp_count=count($out_arr_tmp1);
                    if(
    $tmp_count>1) { for($i=0;$i<$tmp_count-1;$i++) { $out_arr_tmp1[$i]=$out_arr_tmp1[$i].$splitarg; } }
                    
    $out_arr_tmp=array_merge_recursive($out_arr_tmp,$out_arr_tmp1);
                }

            
    $out_arr=array();
            foreach(
    $out_arr_tmp as $str) { $str=trim($str); if($str!="") {$out_arr[]=$str; } }
        }



    $file=fopen($outfile,"w+");
    foreach (
    $out_arr as $str)
        {
            
    fputs($file,$str."\r\n");
        }
    fclose($file);

    echo(
    "End");

    ?> 
     
    barbakan нравится это.
Статус темы:
Закрыта.