Форум: "Начинающим";
Текущий архив: 2008.08.24;
Скачать: [xml.tar.bz2];
ВнизINI файл или XML Найти похожие ветки
← →
TRSteep © (2008-07-21 11:06) [0]Есть необходимость хранить данные. В основном это текстовые строки - они сгрупированы в группы и подгруппы.
Хотел использовать ini. но там нет вложенности и я не нашел функции позволяющей отобразить все имеющиеюся группы.
Вопросы:
1. есть ли такая функция у ini файлов?
2. Проще ли будет использовать xml?
3. как работать с xml (по конкретике:
3.1 нужны ли сторонние компоненты?
3.2 как записать например строку c:\run.exe, в группу application, в подгруппу video с параметром -mini
3.3. как получить список групп, а потом по группе список подгрупп, а уже по ним список строк?
← →
brother © (2008-07-21 11:11) [1]я не любитель сложностей и посоветовал бы ini (можно и вложеность сделать), но в данном случае, xml это оно!
нужен парсер xml, почитай о структуре хранения данных в xml...
← →
Ega23 © (2008-07-21 11:12) [2]
> 1. есть ли такая функция у ini файлов?
У ini-файлов есть функция ReadString и WriteString. Как ты их будешь использовать - дело твоё. При желании можно и на ini-файле иерархическую структуру создать. Надо только чуть-чуть подумать. :)
> 2. Проще ли будет использовать xml?
Наверное проще. Только вот если ты сам парсер писать не будешь, а будешь использовать какой-то готовый, то имей ввиду, что его может и не оказаться на той машине, где запускается твоя программа.
> 3. как работать с xml (по конкретике:
> 3.1 нужны ли сторонние компоненты?
При чём тут компоненты???
> 3.2 как записать например строку c:\run.exe, в группу application,
> в подгруппу video с параметром -mini
Очевидно, добавив узел с атрибутами в качестве дочернего к узлу Video
> 3.3. как получить список групп, а потом по группе список
> подгрупп, а уже по ним список строк?
В общем случае - рекурсией. В частном - можно обойтись без неё.
← →
Медвежонок Пятачок © (2008-07-21 11:13) [3]1.нет
2.проще
3. сложный вопрос
3.1 не нужны
3.2 можно по всякому
3.3 selectnodes
← →
Медвежонок Пятачок © (2008-07-21 11:17) [4]можно и вложеность сделать
А нужно ли и ради чего?
Если еще учесть, что одноименные дети могут быть у совершенно разных родителей.
← →
b z (2008-07-21 11:18) [5]
> нужны ли сторонние компоненты?
Есть готовый - TXMLDocument
> как получить список групп, а потом по группе список подгрупп,
> а уже по ним список строк?
XPath должен помочь
← →
brother © (2008-07-21 11:19) [6]> А нужно ли и ради чего?
по условию нужна вложенность
> Если еще учесть, что одноименные дети могут быть у совершенно
> разных родителей.
и что? сколько родителей, столько детей! в чем проблемма то?
я сказал что можно, но это чуть сложнее чем xml )
← →
Ega23 © (2008-07-21 11:21) [7]
> но это чуть сложнее чем xml )
Вообще не сложнее.
← →
brother © (2008-07-21 11:21) [8]> Вообще не сложнее.
тут думать надо а в xml готовое все)
← →
Медвежонок Пятачок © (2008-07-21 11:23) [9]и что? сколько родителей, столько детей! в чем проблемма то?
я сказал что можно, )
секция "ружья" и "винтовки" и у обоих дети "патроны"
набросай примерную структуру ини
но это чуть сложнее чем xml
Вот и спрашивается, зачем здесь ини.
← →
Ega23 © (2008-07-21 11:26) [10]
> секция "ружья" и "винтовки" и у обоих дети "патроны"
> набросай примерную структуру ини
>
А что тут непонятного? У ружей патроны одни, у винтовок - другие. Там охотничий, там - унитарный...
← →
Медвежонок Пятачок © (2008-07-21 11:27) [11]ты структуру ини нарисуй. и чтобы секции патронов не переименовывать
← →
brother © (2008-07-21 11:29) [12][голова]
мах=2
sect1=ружья
sect2=винтовки
[sect1]
мах=1
index1=патроны
[sect2]
мах=1
index1=патроны
как то так...
← →
Медвежонок Пятачок © (2008-07-21 11:32) [13]и где здесь секции "ружья" и "виновки" ?
← →
brother © (2008-07-21 11:33) [14]надо будет вообще компонентик навоять (c вложенностью в ini)
← →
TRSteep © (2008-07-21 11:33) [15]
> У ini-файлов есть функция ReadString и WriteString. Как
> ты их будешь использовать - дело твоё. При желании можно
> и на ini-файле иерархическую структуру создать. Надо только
> чуть-чуть подумать. :)
Да я понимаю - просто название всей иерархии задавать буду не я - и найти их можно будет - открыв и найдя все секции (я просто думал есть функцая - самому лень заморачиваться :) )
> Наверное проще. Только вот если ты сам парсер писать не
> будешь, а будешь использовать какой-то готовый, то имей
> ввиду, что его может и не оказаться на той машине, где запускается
> твоя программа.
Парсер писать не буду. Насколько я понял есть парсер Microsoft"а . он есть у всех или его нужно будет ставить?..
> При чём тут компоненты???
ну незнаю - может нужны :)
> Есть готовый - TXMLDocument
А что-то на компьютере клиентов ставить нужно будет?
← →
brother © (2008-07-21 11:33) [16]> и где здесь секции "ружья" и "виновки" ?
болеешь?
← →
Ega23 © (2008-07-21 11:34) [17]
[0]
Name=Root
ChildCount=2
Child1=1
Child2=2
[1]
Name=Rifles
ChildCount=1
Child1=3
[2]
Name=Assault Rifles
ChildCount=1
Child1=4
[3]
Name=Ammo
....
[4]
Name=Ammo
....
Ничего сложного.
← →
brother © (2008-07-21 11:35) [18]> Ничего сложного.
это о полете фантазии? ;)
← →
TRSteep © (2008-07-21 11:35) [19]
> brother ©
прикольно :)
теперь понял что вы имеете ввиду
← →
Ega23 © (2008-07-21 11:35) [20]А если ещё и парент в каждой секции указывать - совсем не сложно будет.
← →
brother © (2008-07-21 11:36) [21]> А если ещё и парент в каждой секции указывать - совсем не
> сложно будет.
да это все, как 2 байта передать ;)
← →
b z (2008-07-21 11:36) [22]
> brother © (21.07.08 11:33) [14]
> надо будет вообще компонентик навоять
Скооперируйтесь http://delphimaster.net/view/15-1213304967/ :)
← →
brother © (2008-07-21 11:38) [23]> http://delphimaster.net/view/15-1213304967/
> :)
ага помнн, было такое)
← →
Медвежонок Пятачок © (2008-07-21 11:49) [24][1]
Name=Rifles
ChildCount=1
Child1=3
[2]
Name=Assault Rifles
ChildCount=1
Child1=4
Теперь получите список элементов одного уровня (категорий).
"ружья" "винтовки" "пистолеты"
← →
brother © (2008-07-21 11:55) [25]> Теперь получите список элементов одного уровня (категорий)
> .
это ТЗ или как?
← →
Медвежонок Пятачок © (2008-07-21 11:56) [26]Да пофик что это.
Вложенность и иерархия же реализованы, значит это должно быть несложно.
Или сложно?
← →
Медвежонок Пятачок © (2008-07-21 11:57) [27]тем более что
да это все, как 2 байта передать ;)
← →
brother © (2008-07-21 11:59) [28][голова]
мах=3
sect1=ружья
sect2=винтовки
sect3=пистолеты
[sect1]
мах=1
index1=патроны
[sect2]
мах=1
index1=патроны
[sect3]
мах=1
index1=патроны
> Теперь получите список элементов одного уровня (категорий)
> .
1. читаем все sect
2. читаем index1 всех sect...
← →
Медвежонок Пятачок © (2008-07-21 12:01) [29]1. читаем все sect
2. читаем index1 всех sect...
А для третьего уровня иерархии?
← →
brother © (2008-07-21 12:01) [30]> А для третьего уровня иерархии?
в данном случае только 2 уровня...
← →
TRSteep © (2008-07-21 12:04) [31]а я вот нашел:
[Delphi] procedure ReadSections(Strings: TStrings); overload; override;
Description
Call ReadSections to retrieve the names of all sections in an INI file into a string list object.
Strings specifies the string object to hold the retrieved names. Strings can point to a TStrings object, or to a component property, such as Items for a TListBox component.
....
← →
Медвежонок Пятачок © (2008-07-21 12:05) [32]в данном случае только 2 уровня...
О том и речь, что автору предлагают создать чернила для седьмого класса вместо использования xml который и предназначен для подобных задач
← →
Ega23 © (2008-07-21 12:08) [33]
> Теперь получите список элементов одного уровня (категорий).
> "ружья" "винтовки" "пистолеты"
Это приказ? Или ты хочешь предложить мне халтурку?
Если ОЧЕНЬ сильно надо получение всех атрибутов одного уровня (хотя я такой задачи ещё никогда не встречал) - вводим понятие Level. А сам файл грузим в иерархическую структуру, с которой работаем.
← →
Ega23 © (2008-07-21 12:09) [34]
> вместо использования xml который и предназначен для подобных задач
XML слишком тяжёл, перегружен и избыточен. Я бы в сторону более лёгких языков разметки посоветовал бы посмотреть, типаJSON или YAML. Их много, на самом деле.
← →
Медвежонок Пятачок © (2008-07-21 12:10) [35]Это приказ? Или ты хочешь предложить мне халтурку?
Все тоже самое можно и без ини сделать. На простом текстовом файле.
Оно кому-то надо?
← →
brother © (2008-07-21 12:11) [36]> Оно кому-то надо?
а почему нет?
← →
Медвежонок Пятачок © (2008-07-21 12:11) [37]XML слишком тяжёл, перегружен и избыточен.
Куда я попал, мама....
← →
brother © (2008-07-21 12:12) [38]> Куда я попал, мама....
а куда ты целился?)
← →
Ega23 © (2008-07-21 12:13) [39]
> Куда я попал, мама....
А что не так-то?
← →
Медвежонок Пятачок © (2008-07-21 12:14) [40]времени у вас юноши немеряно потому и идеи бредовые типа этой в головешку лезут
надо будет вообще компонентик навоять (c вложенностью в ini)
Страницы: 1 2 3 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.08.24;
Скачать: [xml.tar.bz2];
Память: 0.56 MB
Время: 0.044 c