Текущий архив: 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