Есть программа на Си (тест), результатом выполнения которой является текстовый файл(результаты теста), при очередном прохождении теста файл ДОписывается новыми результатами. Выглядит он примерно так:
режим в котором осуществлялось тестирование, например:
0
входные данные, например:
p 132423525
s 578857
w 645946512thr
результаты тестирования, например:
gfdgdsdg8665
dgdsg7979
Т.е. файл имеет жесткую структуру.
Нужно как-то автоматически передать инфу из этого файла в БД (MySQL). Вопрос - как это сделать?
Есть идея только типа - каким-то образом считывать переменные из файла, вставлять их на нужные места в шаблон дампа БД и потом загружать этот дамп....но это больше на бред похоже...подскажите пожалуйста, как поступают в таких ситуациях?? Очень нужна помощь!!!
Спустя 15 часов, 10 минут, 10 секунд (22.08.2008 - 08:46) CaXaP написал(а):
Имхо, варианта 2.
1. Как раз ваш "на бред похожий" - считывать данные из выходного файла и формировать файл дампа скуэль (это если нужно его куда-нибудь переносить). В целом, это не такая уж и сложная задача (файл дампа по структуре достаточно прост).
2. Также считывать данные из выходного файла, и уже напрямую загонять их в БД с помощью скуэль (командами INSERT). Да и таблицы новые с помощью запросов создавать можно - проблем не должно возникнуть никаких.
В данном случае, имхо, сложнее будет распарсить ваш выходной файл, нежели организовать заполнение БД из него...
Других способов на ум не приходит пока.
1. Как раз ваш "на бред похожий" - считывать данные из выходного файла и формировать файл дампа скуэль (это если нужно его куда-нибудь переносить). В целом, это не такая уж и сложная задача (файл дампа по структуре достаточно прост).
2. Также считывать данные из выходного файла, и уже напрямую загонять их в БД с помощью скуэль (командами INSERT). Да и таблицы новые с помощью запросов создавать можно - проблем не должно возникнуть никаких.
В данном случае, имхо, сложнее будет распарсить ваш выходной файл, нежели организовать заполнение БД из него...
Других способов на ум не приходит пока.
Спустя 1 час, 16 минут, 58 секунд (22.08.2008 - 10:03) Splendid написал(а):
а вот - считывать данные из выходного файла - как это правильно сделать, если файл постоянно дописывается? Т.е. как сделать так, чтобы не считывать каждый раз весь, а только добавленный кусок?
Спустя 4 часа, 11 минут, 23 секунды (22.08.2008 - 14:14) CaXaP написал(а):
способ немножко из разрядов танцев с бубном, но поможет:
результаты работы программы на си будут записываться в файл файл1.
прога на пхп (неважно на чём в общем то) парсит файл1 и все данные из него записывает в БД.
По окончанию парсинга все данные из файла1 ДОПИСЫВАЮТСЯ В КОНЕЦ файла2, а содержимое файла1 обнуляется.
Таким образом в файле1 будут данные для ввода в БД, а в файле 2 будут общие результаты работы программы.
Из менее надёжных способов:
Можно смотреть сколько записей в БД, и при чтении данных из файла сразу пропускать необходимое количество записей (по числу записей в БД).
Можно в файл результатов после записи из него данных в БД ставить какую-нибудь пометку (например, символ "@"), а при следующем чтении искать этот символ и начинать считывать уже с него.
А мб кто ещё чего-нидь подскажет дельное)
результаты работы программы на си будут записываться в файл файл1.
прога на пхп (неважно на чём в общем то) парсит файл1 и все данные из него записывает в БД.
По окончанию парсинга все данные из файла1 ДОПИСЫВАЮТСЯ В КОНЕЦ файла2, а содержимое файла1 обнуляется.
Таким образом в файле1 будут данные для ввода в БД, а в файле 2 будут общие результаты работы программы.
Из менее надёжных способов:
Можно смотреть сколько записей в БД, и при чтении данных из файла сразу пропускать необходимое количество записей (по числу записей в БД).
Можно в файл результатов после записи из него данных в БД ставить какую-нибудь пометку (например, символ "@"), а при следующем чтении искать этот символ и начинать считывать уже с него.
А мб кто ещё чего-нидь подскажет дельное)
Спустя 12 часов, 5 минут, 19 секунд (23.08.2008 - 02:19) Gibbzy написал(а):
а можно ещё скрипт запускать постоянно через промежутки времени и обнулять файлек ессно.
Спустя 3 дня, 9 часов, 20 минут, 33 секунды (26.08.2008 - 11:40) Ghost написал(а):
при окончании парсинга можно дописывать спец-строчку в файл
_____________