Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.08.24;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.015 c
15-1215162423
DN
2008-07-04 13:07
2008.08.24
Что за кодировка?


15-1215495559
Игорь М.
2008-07-08 09:39
2008.08.24
Максимальное число записей в таблице Access ?


15-1215516791
@!!ex
2008-07-08 15:33
2008.08.24
Объясните правила?


3-1204294921
pirks
2008-02-29 17:22
2008.08.24
Перевернуть таблицу


3-1204204239
harisma
2008-02-28 16:10
2008.08.24
Динамическое формирование списка значений для выборки