Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1216217062
ShyricK
2008-07-16 18:04
2008.08.24
Работа с FTP


2-1216146938
batya-x
2008-07-15 22:35
2008.08.24
узнать букву USB-диска


1-1197265455
Vladimir888
2007-12-10 08:44
2008.08.24
Получить значки дисководов


2-1216449989
Анатолий_1987
2008-07-19 10:46
2008.08.24
Роли и привилегии


2-1216209485
Newss
2008-07-16 15:58
2008.08.24
сохранение рисунков





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский