Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> структура файла - дерево. как читать часть? 
:(
    Опции темы
Sniper
Дата 4.6.2007, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 511
Регистрация: 8.5.2002

Репутация: нет
Всего: 2



Вобщем я несовсем знаю (читай: совсем не знаю) что делать.
значения и выражения в файле взяты с потолка

Код

#комментарий
d2_width(monitor())
#-----------------
    status
        position=0
        contact=0
        f_set_pos=0
#-----------------
    params
        coefficient=-0.005
    units='mm'
d1_height(app())
#----комментарий
    status
        state='on'
    params


Вот такая штука:
отлавливать комментарии так по идее.

Код

while(!feof($file)) {
$text=fgets($file,1);
if $text='#' continue;
}

далее надо читать до скобки "(" и то, что прочитали записывать в масив. как?
далее 4 пробела и начинается ветка, как прочитать 4 пробела, а остальную строку также записать?
Ну и вообще высший пилотаж, 4 пробела прочитать и записать строку до "=" и записать кудато значение?
 smile

Это сообщение отредактировал(а) Sniper - 4.6.2007, 15:36


--------------------
"Я испытываю отвращение к системе, разработаннной для "пользователя", если в слове "пользователь" закодировано уничижительное значение "тупой и примитивный".
Кен Томпсон, создатель Unix
PM MAIL   Вверх
Sniper
Дата 5.6.2007, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 511
Регистрация: 8.5.2002

Репутация: нет
Всего: 2



народ, я не прошу вас написать код за меня полностью (хотя это приветствуется  smile )...я прошу вас ответить на конкретные вопросы. Плиз! 


--------------------
"Я испытываю отвращение к системе, разработаннной для "пользователя", если в слове "пользователь" закодировано уничижительное значение "тупой и примитивный".
Кен Томпсон, создатель Unix
PM MAIL   Вверх
SelenIT
Дата 5.6.2007, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 8
Всего: 401



Sniper, если не секрет, требование именно такого формата входного файла (насколько я понял, это некий конфиг) задано жестко и не обсуждается? Имхо, просто древовидную структуру конфига было бы проще хранить в XML и парсить стандартными средствами. А так все выглядит как странная попытка придать ini-формату (для которого тоже есть стандартное средство - parse_ini_file) несвойственную ему древовидность путем искусственных ухищрений, что в итоге требует нетривиального парсинга...

И еще вопрос - что означают скобки (внешние и внутренние)?

И самое главное - какой формат данных требуется на выходе? Насколько я понял, нужен многомерный массив? Можно привести пример желаемого результата для примера исходных данных из первого поста?


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Sniper
Дата 6.6.2007, 09:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 511
Регистрация: 8.5.2002

Репутация: нет
Всего: 2



Цитата

требование именно такого формата входного файла (насколько я понял, это некий конфиг) задано жестко и не обсуждается?

Наоборот, активно обсуждается.
Цитата

насколько я понял, это некий конфиг

это мгновенный снимок бинарного файла ("базы данных") древовидность обязательна
Цитата

И еще вопрос - что означают скобки (внешние и внутренние)?

данные скрытые от юзера ;-)
Цитата

И самое главное - какой формат данных требуется на выходе? Насколько я понял, нужен многомерный массив? Можно привести пример желаемого результата для примера исходных данных из первого поста?

Формат данных любой в принципе. Да скорее всего многомерный массив.

Пример желаемого результата... глобально вот такой.user posted image
Т.е. юзер в броузере, должен гулять по этому дереву и выбирать из него, добавляя в список, нужные ему элементы.

Допустим переделаем этот файл в XML тогда какие функции использовать для парсинга этого файла?  smile 

Такие вопросы у меня потому, что я PHP изучаю вторую неделю и с деревьями никогда не работал.
 smile 
Если поможете хоть 1/10 сделать от этого, будет отлично. smile 


--------------------
"Я испытываю отвращение к системе, разработаннной для "пользователя", если в слове "пользователь" закодировано уничижительное значение "тупой и примитивный".
Кен Томпсон, создатель Unix
PM MAIL   Вверх
Sniper
Дата 7.6.2007, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 511
Регистрация: 8.5.2002

Репутация: нет
Всего: 2



Начал переделывать на XML

Код

<?xml version="1.0" encoding="UTF-8"?>
<device>d2_width(monitor())
<status    position='0' contact='0' f_set_pos='0'></status>
<params coefficient='-0.005' units='mm'></params>
</device>


не знаю как оформить комментарии...
пишу код:
Код

<?php
$xml = domxml_open_file('db.xml');
$root = $xml->document_element(); 
$nodes = $root->child_nodes(); 
foreach($nodes as $node) {
 if ($node->node_name() == 'status') {
 $currentMessage['position'] = $node->get_attribute('position');
 $currentMessage['contact'] = $node->get_attribute('contact');
 $currentMessage['f_set_pos'] = $node->get_attribute('f_set_pos');
 $messages[] = $currentMessage;
 }


Это всё сохранилось в массив.
Дальше вывод понятно.
Вопрос в другом, status и params в каждой ветке но в этих статус и парамс совершенно неповторяющиеся значения и параметры, как читать тогда?


--------------------
"Я испытываю отвращение к системе, разработаннной для "пользователя", если в слове "пользователь" закодировано уничижительное значение "тупой и примитивный".
Кен Томпсон, создатель Unix
PM MAIL   Вверх
Golda
Дата 9.6.2007, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 26.3.2007
Где: Ариель, Израиль

Репутация: 1
Всего: 42



Цитата(Sniper @  7.6.2007,  11:16 Найти цитируемый пост)
не знаю как оформить комментарии...


Комментарии в XML:

Код

<!-- All between these tags is a comment -->



Цитата(Sniper @  7.6.2007,  11:16 Найти цитируемый пост)
status и params в каждой ветке но в этих статус и парамс совершенно неповторяющиеся значения и параметры, как читать тогда? 


в ассоциированный массив пишите все, что найдете с помощью $node->attributes(). Этот метод возвращает массив всех найденых атрибутов. А дальше foreach




--------------------
"For every problem, there exists a simple and elegant solution which is absolutely wrong." -- J. Wagoner, U.C.B. Mathematics
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.0717 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.