За последние 24 часа нас посетил 17781 программист и 1654 робота. Сейчас ищут 1414 программистов ...

Парсинг данных из файла

Тема в разделе "Регулярные выражения", создана пользователем RainBowDash, 30 авг 2013.

  1. RainBowDash

    RainBowDash Активный пользователь

    С нами с:
    22 июл 2013
    Сообщения:
    220
    Симпатии:
    8
    Читал похожие темы , но так ни к чему и не пришел ....

    Вобщем есть файл в котором хранятся данные по типу:

    Код (Text):
    1.  
    2. znachenie1  5  3  0  0,25  0  0  2  1
    3. znachenie2  3  1  0  0,45  2  1  0  1
    4. znachenie3  6  4  2  0,15  1  3  1  0
    5. .....
    Нужно зная абстрактное "znachenie" получить массив с цифрами после него по порядку оф коз.

    Значение может состоять из английских буков, тире и символа подчёркивания.

    Спасибо!
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    вы хотите готовый скрипт? почему вы думаете, что регулярки будут тут эффективны? Можно ли заменить это дело на бд? как часто данные в файле обновляются? какого размера файл?
     
  3. RainBowDash

    RainBowDash Активный пользователь

    С нами с:
    22 июл 2013
    Сообщения:
    220
    Симпатии:
    8
    Мне нужно что бы это работало.
    Файл крайне мал и вроде как редко будет обновлятся.
    Данные по другому не получить, можно конечно парсить их из html страницы, но помоему тут меньше данных переберать....
     
  4. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    /^([a-z\d\-_])+(\s+([\d,]+))+$/i
     
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    если файл крайне мал, то можно сформировать нормальный массив единожды прочитав - это ра

    два, лучше без слова, если только цифра меняется
     
  6. RainBowDash

    RainBowDash Активный пользователь

    С нами с:
    22 июл 2013
    Сообщения:
    220
    Симпатии:
    8
    Ничего не находит... Вы проверяли шаблон ? Наверное я где то косячу....
    Если считаете что ваш вариант лучше , то я не против примеров.
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Код (PHP):
    1. <?php
    2. $f = file('путь к файлу');//читаем файл как построчный массив
    3. $a = array();
    4. foreach ($f as $line) {
    5.   $line = substr($line, 9); //отрезаем нафик буквы
    6.   $line = explode(' ', $line); //бьём строку по пробелу
    7.   $a[$line[0]] = $line; //формируем массив с ключами - первым числом, и содержимым - всей строкой.
    8. }
    9. echo $a[2][4];
     
  8. RainBowDash

    RainBowDash Активный пользователь

    С нами с:
    22 июл 2013
    Сообщения:
    220
    Симпатии:
    8
    Кто вам сказал что "znachenie" будет иметь сходный вид ?
    а не
    Код (Text):
    1.  
    2. o_l_o_l_o-a-z-a-z-a
    3. pshe_pshe
    4. vasiy-pupkin
    5. kray-
    6. Kaktak___
    Как раз по этому параметру мне и нужно извлечь данные.
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    будешь так со мной разговаривать - не буду вообще тебе ничего делать. пипец.

    убери строку
    $line = substr($line, 9); //отрезаем нафик буквы
    и массив будет содержать полный ключ.

    больше ничего не нужно? Научиться код читать тебе не нужно? Может у меня там спрятана команда форматирования харда?
     
  10. RainBowDash

    RainBowDash Активный пользователь

    С нами с:
    22 июл 2013
    Сообщения:
    220
    Симпатии:
    8
    А что я такого сказал? :D
     
  11. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
     
  12. RainBowDash

    RainBowDash Активный пользователь

    С нами с:
    22 июл 2013
    Сообщения:
    220
    Симпатии:
    8
    Эта фраза была не достаточно уважительна для вас ?
     
  13. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    угу. учитывая, что я указал тебе возможность обоих вариантов, звучала она очень странно.
     
  14. RainBowDash

    RainBowDash Активный пользователь

    С нами с:
    22 июл 2013
    Сообщения:
    220
    Симпатии:
    8
    Ну тогда прощу прощения и крайне благодарен вам за предоставленную информацию ))
     
  15. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ты лучше скажи работает чочо или нед?
     
  16. RainBowDash

    RainBowDash Активный пользователь

    С нами с:
    22 июл 2013
    Сообщения:
    220
    Симпатии:
    8
    ну по названию "znacheniy" и порядковому номеру данных после него выводит что захочешь.
    В целом этого достаточно.