Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Умный парсер CSV файлов...
Покинул форум
Сообщений всего: 107
Дата рег-ции: Июнь 2010 Откуда: Kharkov, Ukraine
Помог: 0 раз(а)
Ребят, подскажите с идеей, как реализовать парсер CSV файлов, который файлы любой структуры подгоняет под шаблон.
Допустим открываем мы файл, а там 25 столбцов, а нам надо из 25 всего 10 да ещё и приводить строку(столбец) "Гайка: 25х1.5" к виду столбец 1 = "25" столбец 2 ="1.5", а может быть написано и "Белка ололо - 31:90"...
какие есть у кого идеи?)
Maxi
Отправлено: 20 Марта, 2012 - 14:06:46
Гость
Покинул форум
Сообщений всего: 107
Дата рег-ции: Июнь 2010 Откуда: Kharkov, Ukraine
Помог: 0 раз(а)
Maxi пишет:
Ребят, подскажите с идеей, как реализовать парсер CSV файлов, который файлы любой структуры подгоняет под шаблон.
Допустим открываем мы файл, а там 25 столбцов, а нам надо из 25 всего 10 да ещё и приводить строку(столбец) "Гайка: 25х1.5" к виду столбец 1 = "25" столбец 2 ="1.5", а может быть написано и "Белка ололо - 31:90"...
какие есть у кого идеи?)
up :\
EuGen
Отправлено: 20 Марта, 2012 - 14:19:54
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Maxi
Задача сводится к написанию корректного регулярного выражения для разделителя, но в том виде, в котором Вы ставите задачу, четкого понимания, как это делать - нет.
Задайтесь вопросом, что Вы видите как разделитель, формализуйте это и получите 80% решения.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
Maxi
Отправлено: 20 Марта, 2012 - 17:04:06
Гость
Покинул форум
Сообщений всего: 107
Дата рег-ции: Июнь 2010 Откуда: Kharkov, Ukraine
Помог: 0 раз(а)
EuGen пишет:
Maxi
Задача сводится к написанию корректного регулярного выражения для разделителя, но в том виде, в котором Вы ставите задачу, четкого понимания, как это делать - нет.
Задайтесь вопросом, что Вы видите как разделитель, формализуйте это и получите 80% решения.
Понимаете, Евгений, стоит задача у меня реализовать парсер, который будет приводить прайс лист любого вида к заданному шаблону......чёткого вида в котором будет представлена информация к сожалению нет :\....т.е. разделитель может быть любым.
У меня была иде
Только что прям пришла новая в голову..) А если из строки выбирать подстроку вида (0-9,-_x*,0-9), а потом этот разделитель менять на тот который мне нужен...
EuGen
Отправлено: 20 Марта, 2012 - 17:57:32
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Нет, Вы не понимаете. Если у Вас неопределен разделитель, то как можно разобрать что-то наподобие
гайка-20мм,10мм, автозапчасти, автомобили
(первая запятая относится к детали, остальные - разделители)
- то есть нет гарантии, что разделитель не будет встречаться в данных. Это первое.
Затем, если у Вас в разделителе может быть 1.5 - в каком случае это нужно трактовать как вещественное число 1.5, а в каком - как два числа 1 и 5? Ну и т.п. - подобных случаев можно представить большое количество. Потому повторюсь - формализуйте требования исходя из первоначальной задачи.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.