помогите плиз поменять формат

Тема в разделе "PHP", создана пользователем legion2k, 22 сен 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. legion2k

    legion2k

    Регистр.:
    16 дек 2007
    Сообщения:
    162
    Симпатии:
    56
    такой вопрос:

    есть текстовик в котором строчки в таком формате:

    ААААА:БББББ:ЦЦЦЦЦ
    ААААА:БББББ:ЦЦЦЦЦ
    и.т.д

    вобщем, разделитель это ":"

    подскажите как преобразовать всё это в след. формат:

    ББББ:ЦЦЦЦЦ@ААААА
    ББББ:ЦЦЦЦЦ@ААААА

    а то руками займёт много времени.
    спасибо,

    p.s. ААА:ББББ:ЦЦЦЦ - это всё разные данные, которые не повторяются на других строках
     
  2. ZCFD

    ZCFD

    Регистр.:
    16 янв 2008
    Сообщения:
    989
    Симпатии:
    437
    PHP:
    $text_out preg_replace('/(.+?):(.+?):(.+?)\n/m''$1:$2@$3\n'$text_in);
    как вариант : в exel это займет 2 минуты
     
    legion2k нравится это.
  3. legion2k

    legion2k

    Регистр.:
    16 дек 2007
    Сообщения:
    162
    Симпатии:
    56
    спасибо,
    если не затруднит - можно полный рабочий пример, где 1.тхт - наш техтовик.
     
  4. elcaste

    elcaste

    Регистр.:
    30 ноя 2007
    Сообщения:
    322
    Симпатии:
    175
    PHP:
    <?php
    $in 
    file_get_contents('in.txt');
    $out preg_replace('/([^\:]+):([^\:]+):([^\n]+)\n/'"$2:$3@$1\n"$in);
    file_put_contents('out.txt'$out);
    ?>
     
    legion2k нравится это.
  5. skabbit

    skabbit Постоялец

    Регистр.:
    6 дек 2007
    Сообщения:
    88
    Симпатии:
    1
    в поставке с komodo (и eclipse помоему тоже) идёт софтина для тестирования regexp. иногда её можно использовать для тестирования, а иногда - для получения непосредственных результатов их работы. что и советую использовать.
     
  6. Liver

    Liver

    Регистр.:
    24 сен 2008
    Сообщения:
    316
    Симпатии:
    91
    Использую PSPad (текстовый редактор такой) для этих целей и всем рекомендую. Есть поиск-замена/выборка по регулярным выражениям. Для чистки любых текстовых файлов самое то. Результат тут же на месте.
     
  7. DIAgen

    DIAgen Постоялец

    Регистр.:
    30 окт 2006
    Сообщения:
    134
    Симпатии:
    72
    Вот моя реализация :)

    PHP:
    $data file_get_contents('date.txt');
    $date_array explode("\n",$data);
    for(
    $i=0;count($date_array)>$j;$j++) {
        
    $date_array_tmp explode(':',$date_array [$i]);
        echo 
    $date_array_tmp[1].':'.$date_array_tmp[2].'@'.$date_array_tmp[0].'<br>';
    }
     
Статус темы:
Закрыта.