помогите скриптом

Discussion in 'PHP' started by plas, 13 Jan 2009.

  1. plas

    plas Elder - Старейшина

    Joined:
    19 Mar 2007
    Messages:
    83
    Likes Received:
    11
    Reputations:
    -2
    если нетрудно напишите хотя бы примерный скрипт
    надо парсить много тхт
    парсить нужно в 1 строчке (они всегда есть) 6цифр
    и в последней тоже цифры но они меняются
    примерно все файлы выглядят так:

    123456
    текст цифры текст цифры текст цифры текст цифры
    текст цифры текст цифры текст цифры текст цифры
    текст цифры текст цифры текст цифры текст цифры
    ....
    1(цифры ненужные) 2(цифры нужные) 3(цифры нужные)


    в начале тхт всегда [пробел]6цифр
    а в конце цифры цифры цифры и они в каждом тхт разные.
     
  2. login999

    login999 Elder - Старейшина

    Joined:
    12 Jun 2008
    Messages:
    491
    Likes Received:
    280
    Reputations:
    92
    Лучше бы ты кусок исходного тхт файла привел, пример непонятен, тут тебе походу регулярками придется обрабатывать, а я в них к сожалению не шарю (пока)
     
  3. devton

    devton Elder - Старейшина

    Joined:
    26 Oct 2007
    Messages:
    3,364
    Likes Received:
    5,122
    Reputations:
    48
    _http://webdos.freezoka.com/files/htmllerz.zip
    cuttext.exe из архива тебе поможет наверно
    и не напрягай народ по мелочам - не спрашивай какие там кнопочки жать итп - разберись сам ибо все просто
     
  4. t00th

    t00th Banned

    Joined:
    15 Jul 2007
    Messages:
    37
    Likes Received:
    15
    Reputations:
    6
    Если правильно понял то что то вроде такого
    В зависимости от количества "текст цифры" в последней строке надо менять значение в split`е, тут сделано для 4 цифр
    PHP:
    #!/usr/bin/python  

    open(r"C:\trace.txt""r")  
    first_line f.readline()  
    last_line f.readlines()[-1]  
    result = [(x) for x in last_line.split(' ',8) if x.isdigit()]  
    print 
    first_line.lstrip()  
    print 
    result[1:]  
     
    #4 t00th, 13 Jan 2009
    Last edited: 13 Jan 2009
    1 person likes this.
  5. .:nbd:.

    .:nbd:. Elder - Старейшина

    Joined:
    27 Jul 2008
    Messages:
    97
    Likes Received:
    27
    Reputations:
    1
    На PHP (не проверял, но должно работать):

    PHP:
    <?php
    @set_time_limit(0);
    foreach (
    glob("*.txt") as $filename) {
    $file_content file ($filename);
    $pattern="/\d{1,}\s(\d{1,})\s(\d{1,})/";
    preg_match_all($patternend($file_content), $out);
    $result[] = trim($file_content[0]).' '.$out[1][0].' '.$out[2][0]; 
    unset(
    $file_content);
    }
    print_r($result);
    ?>
    копируем все тхт файлы в папку со скриптом и собственно запускаем его.
     
    #5 .:nbd:., 13 Jan 2009
    Last edited: 13 Jan 2009
    1 person likes this.
  6. w.u.n.

    w.u.n. Member

    Joined:
    13 Dec 2008
    Messages:
    40
    Likes Received:
    26
    Reputations:
    1
    \d{1,} WTF? xD

    \d+
     
    1 person likes this.
  7. .:nbd:.

    .:nbd:. Elder - Старейшина

    Joined:
    27 Jul 2008
    Messages:
    97
    Likes Received:
    27
    Reputations:
    1
    Не суть... кто-то пишет с наклоном вправо, кто-то влево... просто я так привык =)

    Да и прегматч там не нужен, вполне експлоуда хватит и еще кое-что можно заменить.
     
    #7 .:nbd:., 13 Jan 2009
    Last edited: 14 Jan 2009
  8. plas

    plas Elder - Старейшина

    Joined:
    19 Mar 2007
    Messages:
    83
    Likes Received:
    11
    Reputations:
    -2
    все правильно 1 строку дергает и выводит

    с цифрами проблема так как они могут быть и
    3 знаки и 8.
    подскажите еще
    как в тхт файлах 1 и последнюю строку только оставить
    раньше раптор был для таких работ хорош,только найти что-то немогу его
     
    #8 plas, 14 Jan 2009
    Last edited: 14 Jan 2009