Главная страница
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)


 
Медвежонок Пятачок ©   (2008-07-21 12:15) [41]

XML слишком тяжёл, перегружен и избыточен.

Я то же самое скажу про VCL и буду прав.
Ты его тоже не используешь там гдле надо гуи?


 
brother ©   (2008-07-21 12:16) [42]

> времени у вас юноши немеряно потому и идеи бредовые типа
> этой в головешку лезут
>
> надо будет вообще компонентик навоять (c вложенностью в
> ini)

это чтоб кой-кому показать, что такое возможно, и на небольших проектах вполне приемлимо...


 
Медвежонок Пятачок ©   (2008-07-21 12:17) [43]

это чтоб кой-кому показать, что такое возможно, и на небольших проектах вполне приемлимо...

Кому показать? Мне что ли?
Точно у тебя времени навалом.
Я такое и на спектруме могу реализовать, не то что в ини.


 
b z   (2008-07-21 12:18) [44]


> и на небольших проектах вполне приемлимо...
А почему только на небольших? :)


 
TRSteep ©   (2008-07-21 12:18) [45]

чувствую сейчас пойдут споры :)
добавлю ИМХО
ini - настройки программы и простенькие двусложные БД
я все таки склоняюсь - к xml - заодно хотелось бы научиться с ним работать.
Сейчас попробую сделать с ini. Но хотелось бы все таки по поводу xml услышать. Что же выбрать парсер или что там нужно. (писать сам точно сейчас не буду да и не смогу)


 
brother ©   (2008-07-21 12:19) [46]

> Я такое и на спектруме могу реализовать, не то что в ини.

подравляю!

> А почему только на небольших? :)

а это уже кому как)


 
Медвежонок Пятачок ©   (2008-07-21 12:24) [47]

Что же выбрать парсер или что там нужно.

Project-Import type library->msxml ver (3|4|6)

далее uses msxl2_tlb и в путь.


 
Ega23 ©   (2008-07-21 12:24) [48]


> Я то же самое скажу про VCL и буду прав.
> Ты его тоже не используешь там гдле надо гуи?


XML хорош как достаточно универсальное средство передачи метаданных между различными системами. Плох - всё суть строка.
Холиваров и обсуждений на эту тему (XML или не XML) в инете полно.
При этом есть масса различных облегченных языков разметки (тот же YAML, который Ruby использует активно).
Везде пихать XML - ИМХО неправильно о неоправдано. Отказываться от него там, где он явно нужен - тоже суть глупость.


 
Медвежонок Пятачок ©   (2008-07-21 12:25) [49]

Плох - всё суть строка.

В ини иначе?


 
clickmaker ©   (2008-07-21 12:25) [50]

мне как-то для хранения настроек в ини пришлось свой класс-парсер написать на плюсах.
Потому что скорость WritePrivateProfileString не устроила


 
Ega23 ©   (2008-07-21 12:27) [51]


> В ини иначе?


Я где-то что-то говорил, что надо всегда пользоваться ini?
Ну да, у меня любимая поговорка: "Всё суть ini-файлы".
Но это, как правило, ответ на какой-то идиотский вопрос. Повелось давно, когда один бывший коллега на этих долбаных ini-файлах БД построил. Расхлёбывали это дело очень долго.


 
brother ©   (2008-07-21 12:32) [52]

собственно, о чем спорим?
xml vs ini ?))))
каждому свое... что и когда использовать - пусть решает сам программист... я показал на примере, что многоуровневость в ini возможно...
собственно, согласен с
> XML хорош как достаточно универсальное средство передачи
> метаданных между различными системами.


 
Плохиш ©   (2008-07-21 12:32) [53]


> TRSteep ©   (21.07.08 12:18) [45]
> Но хотелось бы все таки по поводу xml услышать. Что же выбрать
> парсер или что там нужно.

Вроде в b z   (21.07.08 11:18) [5] уже ответили?


 
Медвежонок Пятачок ©   (2008-07-21 12:35) [54]

> XML хорош как достаточно универсальное средство передачи
> метаданных между различными системами.

<Цитата>


наверное поэтому куча разработчиков использует его там, где передачи данных между разными системами не требуется.
Проект Адоб премьера - xml (кучу остального перечислять не буду).
Странно только почему там не или.


 
Медвежонок Пятачок ©   (2008-07-21 12:37) [55]

> В ини иначе?
Я где-то что-то говорил, что надо всегда пользоваться ini?


А не в ини иначе?


 
Anatoly Podgoretsky ©   (2008-07-21 12:38) [56]

TRegistry/TClientDataset


 
TRSteep ©   (2008-07-21 12:43) [57]


>у меня 2006 - Import type library - нету....

у меня 2006 - Import type library - нету....


> в b z   (21.07.08 11:18) [5]

а где этот зверь TXMLDocument обитает?


 
Ega23 ©   (2008-07-21 12:45) [58]


> А не в ини иначе?

Конечно. Структурированный бинарник, например. TClientDataSet. Неструктурированный бинарник (тэг, длина, данные) и т.п.


> Проект Адоб премьера - xml (кучу остального перечислять
> не буду).
> Странно только почему там не или.


Вот только с вероятностью 90% - там свой парсер. Заточенный не на универсальность, а на работу с проектом Адоба.

Прикола ради посмотрел проект модели БД для Sybase Power Designer. Гибрид XML и ини.


 
Медвежонок Пятачок ©   (2008-07-21 12:46) [59]

Component->Import Component->Import Type Library


 
Медвежонок Пятачок ©   (2008-07-21 12:48) [60]

Вот только с вероятностью 90% - там свой парсер. Заточенный не на универсальность, а на работу с проектом Адоба.

Ага. Чуваки нарисовали свой парсер, но хранят все равно в xml.

Кстати при чем здесь парсер?


 
brother ©   (2008-07-21 12:51) [61]

> Кстати при чем здесь парсер?

те? в ini парсер, в xml парсер...
http://yandex.ru/yandsearch?clid=9582&text=%D1%87%D1%82%D0%BE+%D1%82%D0%B0%D0%BA%D0%BE%D0%B5+%D0%BF%D0%B0%D1%80%D1%81%D0%B5%D1%80


 
Медвежонок Пятачок ©   (2008-07-21 12:52) [62]

здесь обсуждают в чем хранить прежде всего.
а не чем парсить.


 
brother ©   (2008-07-21 12:53) [63]

как ты будешь хранить, не извлекая (не используя парсер)?


 
Ega23 ©   (2008-07-21 12:53) [64]


> здесь обсуждают в чем хранить прежде всего.
> а не чем парсить.


Эти вещи в этом конкретном случае неразрывно между собой связаны, нес па?


 
Медвежонок Пятачок ©   (2008-07-21 12:54) [65]

Ты лучше название темы посмотри еще раз.


 
brother ©   (2008-07-21 12:55) [66]

> Ты лучше название темы посмотри еще раз.

Ты лучше задумайся, о чем ты сейчас говоришь...
Если человек будет использовать xml, проблемма парсинга встанет автоматически...


 
Медвежонок Пятачок ©   (2008-07-21 12:56) [67]

Эти вещи в этом конкретном случае неразрывно между собой связаны, нес па?

Хорошо. Щас тогда я возвращусь к возможностям парсинга ини и xml.
А вы мне снова будете рассказывать, что здесь у автора всего два уровня и на ини можно все реализовать. Кстати я и не спорил, что нельзя. Если вы забыли.


 
Медвежонок Пятачок ©   (2008-07-21 12:58) [68]

Если человек будет использовать xml, проблемма парсинга встанет автоматически...

И что? Она не решена?
Решена причем в тыщу раз с более гибкими и широкими возможностями чем ваши чернила для седьмого класса.


 
brother ©   (2008-07-21 12:59) [69]

> И что? Она не решена?

я это сказал???


 
Медвежонок Пятачок ©   (2008-07-21 13:00) [70]

Не сказал. А зачем тогда вообще про проблемы парсинга в случае xml рассуждать?


 
brother ©   (2008-07-21 13:00) [71]

> А зачем тогда вообще про проблемы парсинга в случае xml
> рассуждать?

это запрещено?


 
Медвежонок Пятачок ©   (2008-07-21 13:02) [72]

это запрещено?

Не запрещено, но не рекомендуется.
Бессмысленными сообщениями загромождать ветки.


 
Ega23 ©   (2008-07-21 13:05) [73]


> Не запрещено, но не рекомендуется.


Почему? Ещё раз: если использовать XML - то так или иначе будет использоваться какой-то парсер. А вот дальше начинаются всякие штуки. Т.к. теоретически, MSXML и DOM на машине могут быть не установлены (крайне редко, но бывает). О чём и предупреждалось изначально.


 
b z   (2008-07-21 13:13) [74]


> а где этот зверь TXMLDocument обитает?
На странице/вкладке Internet видели его.


 
Медвежонок Пятачок ©   (2008-07-21 13:13) [75]

Мда. Тяжелый случай икcемелефобии.
Там ведь еще и винды может не оказаться, не то что DOM.
(Редко правда, но но бывает)


 
brother ©   (2008-07-21 13:14) [76]

по [75] перечитай [72]...


 
Ega23 ©   (2008-07-21 13:21) [77]


> Мда. Тяжелый случай икcемелефобии.


Скорее, тяжёлый случай иксемелемании.
Тут никто, насколько я понимаю, не отказывается от XML. Тут есть предупреждения о его эксплуатации.


 
brother ©   (2008-07-21 13:21) [78]

имхо, данный флуд надо завязывать, по топику, уже все разжевали...)


 
Медвежонок Пятачок ©   (2008-07-21 13:33) [79]

по [75] перечитай [72]...

Ты сам перечитай.
Прежде чем советовать ини вместо xml, там, где явно требуется иерархичность и вложенность. О чем сам автор прямым текстом сказал.


 
brother ©   (2008-07-21 13:35) [80]

> Прежде чем советовать ини вместо xml,

я это советовал??? мой первый посто перечитай и проч!


 
Медвежонок Пятачок ©   (2008-07-21 13:36) [81]

Тут никто, насколько я понимаю, не отказывается от XML.

Ага. Никто не отказывается, только навязчиво советуют ини для хранения иерархических данных.


 
Медвежонок Пятачок ©   (2008-07-21 13:38) [82]

я это советовал??? мой первый посто перечитай и проч!

нет конечно. это я советовал ини.


 
Ega23 ©   (2008-07-21 13:39) [83]

Удалено модератором


 
Медвежонок Пятачок ©   (2008-07-21 13:40) [84]

Удалено модератором


 
Dennis I. Komarov ©   (2008-07-21 13:47) [85]

Удалено модератором


 
brother ©   (2008-07-21 14:22) [86]

Удалено модератором



Страницы: 1 2 3 вся ветка

Текущий архив: 2008.08.24;
Скачать: CL | DM;

Наверх




Память: 0.69 MB
Время: 0.022 c
15-1215413564
ПЛОВ
2008-07-07 10:52
2008.08.24
Файл bla.bla является скрытым


15-1214918754
iZEN
2008-07-01 17:25
2008.08.24
С сегодняшнего дня прекращены продажи Windows XP


15-1215076413
Tonich
2008-07-03 13:13
2008.08.24
Халтурка


15-1215488789
Slider007
2008-07-08 07:46
2008.08.24
С днем рождения ! 8 июля 2008 вторник


2-1216206248
Sashka
2008-07-16 15:04
2008.08.24
Пропадает Главное Меню при изменении ParentWindow