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

Вниз

Парсер XML   Найти похожие ветки 

 
Palladin ©   (2009-05-24 19:01) [40]


> Игорь Шевченко ©   (24.05.09 18:59) [39]

хм ) с твоего позволения я проведу соц. опрос )


 
тимохов ©   (2009-05-24 19:10) [41]

2ИШ

Семантику все равно не проверишь. А синтаксис проверить - дело плевое.

Возможно, что есть проекты, где буква X в названии XML очень даже оправдывает себя. Я имею в виду проекты, которые предполагают расширение настроек от ключ=значение, до ветвистого дерева с множеством взаимосвязей и пр. Но я таких не знаю. Даже те чужие проекты, которые использую я, не видятся мне кандидатами на XML. Вот возьми Апач - там масса настроект Даже есть куски схожие с XML. Однако синтаксис вполне вменяемый. Та же картина с PHP и MySQL. Согласись, не самые простые проекты, но настройки не в XML.

Ты, Игорь, не подумай, что я против XML. Я сам пользуюсь активно им. Но настройки не вижу смысла в нем хранить.


 
тимохов ©   (2009-05-24 19:12) [42]

И вообще, коллеги, которые выступают в защиту XML - помогли бы Юрию Зотову http://delphimaster.net/view/15-1243162054/?

Вроде вопрос по теме XML.


 
Игорь Шевченко ©   (2009-05-24 19:40) [43]

Palladin ©   (24.05.09 19:01) [40]


> с твоего позволения я проведу соц. опрос )


на линукс-форумах для полноты картины :)


> Семантику все равно не проверишь.


Во-первых, можно и семантику


> А синтаксис проверить - дело плевое.


Во-вторых, зачем делать то, что уже сделано.


> Я имею в виду проекты, которые предполагают расширение настроек
> от ключ=значение, до ветвистого дерева с множеством взаимосвязей
> и пр. Но я таких не знаю.


Delphi например :) Настройки проекта хранятся в XML


> Вот возьми Апач - там масса настроект Даже есть куски схожие
> с XML. Однако синтаксис вполне вменяемый


Не надо брать Apache, он написан до появления XML.

Давай возьмем OpenOffice, который хранит разнообразные конфигурации в XML.


 
sniknik ©   (2009-05-24 20:00) [44]

> Я к чему - не стоит делать далеко идущие рекомендации из собственной неудачной практики
а разве рекомендация - не использовать там где не оно не нужно, и только там где требуется/не отвертеться. не логична?

и посмотри как его используют, пихают во все щели только потому что круто/модно/удобно(а после вопросы задают, а как с ним вообще работать то? очень удобно)/универсально(и поэтому пихают для трех параметров простенькой программы где код чтения этих параметров занимает больше строк чем код функционала)


 
Игорь Шевченко ©   (2009-05-24 20:06) [45]

sniknik ©   (24.05.09 20:00) [44]


> а разве рекомендация - не использовать там где не оно не
> нужно, и только там где требуется/не отвертеться. не логична?
>


Как только ты покажешь все ситуации, где "нужно", а где не "нужно", так будет смысл продолжать дискуссию.


> и посмотри как его используют, пихают во все щели только
> потому что круто/модно/удобно(а после вопросы задают, а
> как с ним вообще работать то? очень удобно)/универсально(и
> поэтому пихают для трех параметров простенькой программы
> где код чтения этих параметров занимает больше строк чем
> код функционала)


Посмотри, как используют TMemo или TListBox для чтения списка строк и их дальнейшей обработки - даже далеко ходить не надо, в "Начинающих" и "Основной" примеров такого использования было, как звезд на небе, да и вопросов никак не меньше, чем по XML. Сделай из этого вывод, что компоненты TMemo и TListBox есть безусловное зло, подлежащее выкорчевыванию из любой программы.


 
DVM ©   (2009-05-24 20:30) [46]


> Игорь Шевченко ©   (24.05.09 17:23) [25]


> не надо говорить за всех

Не один пользователь (именно пользователь) в здравом уме не полезет смотреть настройки программы в скрытую папку c:\Documents and Settings\All Users\Application Data или подобную, чтобы посмотреть содержимое ini или xml файла с настройками программы.


 
Игорь Шевченко ©   (2009-05-24 20:31) [47]


> Не один пользователь (именно пользователь) в здравом уме
> не полезет смотреть настройки программы в скрытую папку
> c:\Documents and Settings\All Users\Application Data или
> подобную, чтобы посмотреть содержимое ini или xml файла
> с настройками программы.


Это в линуксе, да ?


 
DVM ©   (2009-05-24 20:42) [48]


> Игорь Шевченко ©   (24.05.09 20:31) [47]


> Это в линуксе, да ?

Для линукса использовать словосочетание "или подобную" из моего поста.
В линуксе XML используется крайне редко пока. Кто настраивал руками сервер с нуля, тот наверняка помнит в каком виде большинство конфигов представлено.
Использовать XML в подобных вещах - это захламлять конфиги и раздувать их размер, одновременно снижая их читабельность для человека.

Читабельность XML ниже, чем того же INI


 
тимохов ©   (2009-05-24 21:15) [49]


> Читабельность XML ниже, чем того же INI

Вот. Поддерживаю на все 100.


 
Медвежонок Пятачок ©   (2009-05-24 21:43) [50]

Вы его глазами что ли читаете?


 
DVM ©   (2009-05-24 22:08) [51]


> Медвежонок Пятачок ©   (24.05.09 21:43) [50]


> Вы его глазами что ли читаете?

Все конфиги в *NIX именно глазами читаются, а пишутся руками.


 
Медвежонок Пятачок ©   (2009-05-24 22:16) [52]

читал я эти конфиги....
прочитал параметр в сотой строке, и запомнил.
на случай если вдруг в ысячной его похерят.


 
sniknik ©   (2009-05-24 22:34) [53]

> Сделай из этого вывод, что компоненты TMemo и TListBox есть безусловное зло, подлежащее выкорчевыванию из любой программы.
как только их начнут повсеместно рекламировать как самые "удобные/универсальные" и навязывать во все программы без исключений, причем не по желанию программиста/реальной необходимости их использовать, а из маркетинговых соображений, такой вывод будет сделан, уж будь уверен.


 
Кто б сомневался ©   (2009-05-24 22:36) [54]


> DVM ©   (24.05.09 16:28) [24]
>
> пользователям плевать как хранит данные программа, ни в
> ини не в иксэмэль они глядеть не будут.


И игрушках параметры хранятся в ini. Дык все продвинутые юзеры лезут туда. К примеру все игры на движке Unreal (1 и 2 и 3).


 
Медвежонок Пятачок ©   (2009-05-24 22:37) [55]

А при чем здесь вообще "читабельность"
Читабельность файла с интерпретируемым кодом выше чем у exe.
И что из этого следует?
Ничего не следует, кроме того, что читабельность у exe никакая.
А кому она нужна?


 
Игорь Шевченко ©   (2009-05-24 22:37) [56]

sniknik ©   (24.05.09 22:34) [53]

ты задай себе один вопрос - а зачем их программисты используют таким вот не вполне естественным способом ?

Кроме того, ты забыл написать, где XML нужно использовать, а где не нужно.


 
DVM ©   (2009-05-24 22:44) [57]


> Кто б сомневался ©   (24.05.09 22:36) [54]


> И игрушках параметры хранятся в ini. Дык все продвинутые
> юзеры лезут туда.

Из этого делается вывод - XML - нечитабелен.


> Медвежонок Пятачок ©   (24.05.09 22:37) [55]


> А при чем здесь вообще "читабельность"

Я и сказал еще в [24], что юзеру по барабану, он читать его все одно не будет.


 
sniknik ©   (2009-05-24 23:07) [58]

> Кроме того, ты забыл написать, где XML нужно использовать, а где не нужно.
не забыл. просто не было у меня реальной необходимости, т.что не могу разделить где же нужно.

ну вот сложных иерархических настроек программ у меня нет (и не должно, настройки должны быть простыми), таблицы и деревья мне тоже туда нет необходимости пихать. я и так с базами работаю.
придумать что нибудь с потолка? ну это скорее твоя забота показать где без него не обойтись.


 
Игорь Шевченко ©   (2009-05-24 23:09) [59]

sniknik ©   (24.05.09 23:07) [58]

Давай в одной какой-нибудь ветке дискутировать, а то неудобно в нескольких одно и то же писать.


 
KilkennyCat ©   (2009-05-24 23:15) [60]

А я всегда храню настройки в простом текстовом файле... и ничем не заморачиваюсь.


 
DVM ©   (2009-05-24 23:16) [61]


> KilkennyCat ©   (24.05.09 23:15) [60]

Так XML он тоже текстовый.


 
KilkennyCat ©   (2009-05-24 23:21) [62]


> DVM ©   (24.05.09 23:16) [61]

не совсем, похоже. видишь, какие спроы и скока проблем вызывает.


 
Mystic ©   (2009-05-25 00:05) [63]

Еще можно хранить в DFM-формате. Написать наследника от TPersistent и писать его в поток.

http://mu.webest.net/prog/ClassIO.pas

А с XML у меня только негативные воспоминания. Раза три, помнится, пытался разобраться с настройками форматов Colorer-а в Far-е, они там в XML. Всякий раз от этого ехала крыша. Например, я просто фанател от того, как хранится Regexp-ы в XML, в regexp-e слеш экранируется, в XML слеш тоже экранируется, получается четыре слеша, и получается сверхчитабельное


  <regexp match="/(\\) ( [  \{\}\,\:\;\!\\\|\"\]\-  ] )/x"  region1="texSymb" region2="texWord"/>
  <regexp match="/\\\\$/" region0="dError"/>
   <regexp match="/^\s*("([^"\\]|(\\\\)|(\\"|n|r)){,254}")\s*=\s*("([^"\\]|(\\\\)|(\\"|n|r))*?")\s* (;.*)?/x"
           region1="regString" region5="regString"  region9="regComment"/>
.......
  <block
    start="/(\\) (left) ( [\s\t]* [\,\|\{\}\(\)\[\]] ) | ( [\s\t]+ [\,\|\{\}\(\)\[\]] {0,1} )/x"
    end="/ (\\) (right) ( [\s\t]* [\,\|\{\}\(\)\[\]] {0,1} ) /x" scheme="Tex_Formula"
    region="texLargeBracket" region00="dpOpenStruct" region10="dpCloseStruct"
    region01="texSymb" region02="texLargeBracket" region03="texBrk" region04="texWord"
    region11="texSymb" region12="texLargeBracket" region13="texBrk"/>


Специальных тулзовин по XML у меня нету, руками такие конфиги править я зарекся. Хотя честно, раза три пытался пробить себя на "а слабо!". Конечно, кое-кто предпочтет что-то вроде


<function name="Sqr" returns="Real">
 <arguments>
   <arg name="X" type="Real"/>
 </arguments>
 <body>
   <assigment>
     <lvalue>
       <variable name="Result"/>
     </lvalue>
     <rvalue>
       <multiplication>
         <variable name="X"/>
         <variable name="X"/>
       </multiplication>
     </rvalue>
   </assigment>
 </body>
</function>


Я лично поищу что-то вроде


 function Sqr(X: Real): Real;
 begin
   Result := X * X;
 end;


Как на моем опыте, XML слишком монстрообразный, за тавтологиями не видно сути. Вот, например, предложенный XML для записи шахматной партии.

http://www.cybercom.net/~zbrad/Chess/pgnxml/

Страшно подумать, во что это выльется... Не, формат попроще лучше:


[White "Fedorov, Alexei"]
[Black "Kasparov, Garry"]
[Result "0-1"]
[ECO "B20"]

1. e4 c5 2. d3 Nc6 3. g3 g6 4. Bg2 Bg7 5. f4 d6 6. Nf3 Nf6 7. O-O O-O 8. h3 b5
9. g4 a5 10. f5 b4 11. Qe1 Ba6 12. Qh4 c4 13. Bh6 cxd3 14. cxd3 Bxd3 15. Re1
Bxh6 16. Qxh6 Qb6+ 17. Kh1 Ne5 18. Nbd2 Rac8 19. Ng5 Rc2 20. Rf1 Bxf1 21. Rxf1
Rfc8 22. fxg6 hxg6 23. Nb3 Rxg2 24. Kxg2 Rc2+ 25. Kg3 Qe3+ 0-1


Т. е. получается, что для очень простых форматов XML слишком монстроидальный. Для форматов посложнее получается (языки программирования, шахматная партия, ...) XML серьезно проигрывает в читабельности. При этом каких либо преимуществ не несет.


 
Медвежонок Пятачок ©   (2009-05-25 00:13) [64]

и снова про читабельность .....

Накой это вообще надо?
Компьютер железный, пусть он читает!


 
KilkennyCat ©   (2009-05-25 00:14) [65]


> XML серьезно проигрывает в читабельности. При этом каких
> либо преимуществ не несет.

А если не читать?
Если мы с тобой захотели обменяться данными? Нам не надо договариваться практически ниочем, если и ты и я можем выгрузить-загрузить через XML.


 
KilkennyCat ©   (2009-05-25 00:18) [66]

Опять же, монстроидальность... тут нельзя винить только XML. Тот, кто с ним работает тоже участвует. Мало вы видели монстроидального в коде любого языка? И что, виноват язык, или тот, кто наворотил хрен чего поймешь?
Вот пример моего описания файла для веб-сайта:
<blik speed="8" onpause="8" count="1" pause="20" />

Блик основного логотипа.

speed="8" - скорость движения (количество пикселей, на которые смещается блик за один кадр).
onpause ="8" - пауза перед началом движения.

Примечание: отсчет начинается с момента запуска ролика, независимо от основного логотипа. Это дает возможность, комбинируя параметры блика с параметрами основного логотипа, получить варианты реализации анимации.

count="1" - количество «пробегов» блика.

pause="20" - пауза между «пробегами» блика. Игнорируется, если count = “1”.

<main onspeed="8" page="1"/>

Основная  страница (тело) сайта.

onspeed="8" - скорость появления.
page="1" - содержимое (страница), которое появится вместе с основной страницей (телом) сайта:

Что тут нечитабельного и монстроидального?


 
KilkennyCat ©   (2009-05-25 00:19) [67]

вариант без комментариев:
<?xml version="1.0" encoding="utf-8"?>
<document>
<logo onspeed="8" offspeed="8" pause="20" />
<blik speed="8" onpause="8" count="1" pause="20" />
<main onspeed="8" page="1"/>
<panhud ponspeed ="6" poffspeed="6" pause="3" />
<menu onspeed="6" offspeed="6" fadmax="100" fadmid="60" fadmin="20" ponspeed="3" poffspeed="3" effect="0"/>
...


 
DVM ©   (2009-05-25 00:22) [68]


> KilkennyCat ©   (25.05.09 00:18) [66]


> Что тут нечитабельного и монстроидального?

Ты слишком простой пример привет.


 
KilkennyCat ©   (2009-05-25 00:24) [69]


> Ты слишком простой пример привет.

Могу сделать копи пасте сотню раз. Что изменится?


 
KilkennyCat ©   (2009-05-25 00:25) [70]

я даже больше скажу: чем сложнее ХМL - тем он читабельнее.


 
KilkennyCat ©   (2009-05-25 00:33) [71]

А удобство совместной работы?
Предположим, то же хранение данных.
Есть некий справочник.
Изначально всех устраивает, но кто-то решил добавить одно, кто-то другое.
Первый обновил общие данные, второй - нет.
Достаточно первому дать свой файл второму и икаких проблем, общие данные будут читаться у всех, а приложения могут отличаться как небо и земля.


 
DVM ©   (2009-05-25 00:42) [72]


> KilkennyCat ©   (25.05.09 00:24) [69]
>
>
> > Ты слишком простой пример привет.
>
> Могу сделать копи пасте сотню раз. Что изменится?

В твоем случае ничего. Вложенность нужна.


> я даже больше скажу: чем сложнее ХМL - тем он читабельнее.

Это спорный вопрос.


 
Игорь Шевченко ©   (2009-05-25 00:55) [73]

DVM ©   (25.05.09 00:42) [72]


> В твоем случае ничего. Вложенность нужна.


Изучай :)

<?xml version="1.0" encoding="utf-8"?>
<BorlandProject>
 <PersonalityInfo>
   <Option>
     <Option Name="Personality">Delphi.Personality</Option>
     <Option Name="ProjectType"></Option>
     <Option Name="Version">1.0</Option>
     <Option Name="GUID">{60D8A109-A6DC-4492-A81C-19C886138743}</Option>
   </Option>
 </PersonalityInfo>
 <Delphi.Personality>
   <Source>
     <Source Name="MainSource">foo.dpr</Source>
   </Source>
   <FileVersion>
     <FileVersion Name="Version">7.0</FileVersion>
   </FileVersion>
   <Compiler>
     <Compiler Name="A">8</Compiler>
     <Compiler Name="B">0</Compiler>
     <Compiler Name="C">1</Compiler>
     <Compiler Name="D">1</Compiler>
     <Compiler Name="E">0</Compiler>
     <Compiler Name="F">0</Compiler>
     <Compiler Name="G">1</Compiler>
     <Compiler Name="H">1</Compiler>
     <Compiler Name="I">1</Compiler>
     <Compiler Name="J">0</Compiler>
     <Compiler Name="K">0</Compiler>
     <Compiler Name="L">1</Compiler>
     <Compiler Name="M">0</Compiler>
     <Compiler Name="N">1</Compiler>
     <Compiler Name="O">1</Compiler>
     <Compiler Name="P">1</Compiler>
     <Compiler Name="Q">0</Compiler>
     <Compiler Name="R">0</Compiler>
     <Compiler Name="S">0</Compiler>
     <Compiler Name="T">0</Compiler>
     <Compiler Name="U">0</Compiler>
     <Compiler Name="V">1</Compiler>
     <Compiler Name="W">0</Compiler>
     <Compiler Name="X">1</Compiler>
     <Compiler Name="Y">1</Compiler>
     <Compiler Name="Z">1</Compiler>
     <Compiler Name="ShowHints">True</Compiler>
     <Compiler Name="ShowWarnings">True</Compiler>
     <Compiler Name="UnitAliases">WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;D biErrs=BDE;</Compiler>
     <Compiler Name="NamespacePrefix"></Compiler>
     <Compiler Name="GenerateDocumentation">False</Compiler>
     <Compiler Name="DefaultNamespace"></Compiler>
     <Compiler Name="SymbolDeprecated">True</Compiler>
     <Compiler Name="SymbolLibrary">True</Compiler>
     <Compiler Name="SymbolPlatform">True</Compiler>
     <Compiler Name="SymbolExperimental">True</Compiler>
     <Compiler Name="UnitLibrary">True</Compiler>
     <Compiler Name="UnitPlatform">True</Compiler>
     <Compiler Name="UnitDeprecated">True</Compiler>
     <Compiler Name="UnitExperimental">True</Compiler>
     <Compiler Name="HResultCompat">True</Compiler>
     <Compiler Name="HidingMember">True</Compiler>
     <Compiler Name="HiddenVirtual">True</Compiler>
     <Compiler Name="Garbage">True</Compiler>
     <Compiler Name="BoundsError">True</Compiler>
     <Compiler Name="ZeroNilCompat">True</Compiler>
     <Compiler Name="StringConstTruncated">True</Compiler>
     <Compiler Name="ForLoopVarVarPar">True</Compiler>
     <Compiler Name="TypedConstVarPar">True</Compiler>
     <Compiler Name="AsgToTypedConst">True</Compiler>
     <Compiler Name="CaseLabelRange">True</Compiler>
     <Compiler Name="ForVariable">True</Compiler>
     <Compiler Name="ConstructingAbstract">True</Compiler>
     <Compiler Name="ComparisonFalse">True</Compiler>
     <Compiler Name="ComparisonTrue">True</Compiler>
     <Compiler Name="ComparingSignedUnsigned">True</Compiler>
     <Compiler Name="CombiningSignedUnsigned">True</Compiler>
     <Compiler Name="UnsupportedConstruct">True</Compiler>
     <Compiler Name="FileOpen">True</Compiler>
     <Compiler Name="FileOpenUnitSrc">True</Compiler>
     <Compiler Name="BadGlobalSymbol">True</Compiler>
     <Compiler Name="DuplicateConstructorDestructor">True</Compiler>
     <Compiler Name="InvalidDirective">True</Compiler>
     <Compiler Name="PackageNoLink">True</Compiler>
     <Compiler Name="PackageThreadVar">True</Compiler>
     <Compiler Name="ImplicitImport">True</Compiler>
     <Compiler Name="HPPEMITIgnored">True</Compiler>
     <Compiler Name="NoRetVal">True</Compiler>
     <Compiler Name="UseBeforeDef">True</Compiler>
     <Compiler Name="ForLoopVarUndef">True</Compiler>
     <Compiler Name="UnitNameMismatch">True</Compiler>
     <Compiler Name="NoCFGFileFound">True</Compiler>
     <Compiler Name="ImplicitVariants">True</Compiler>
     <Compiler Name="UnicodeToLocale">True</Compiler>
     <Compiler Name="LocaleToUnicode">True</Compiler>
     <Compiler Name="ImagebaseMultiple">True</Compiler>
     <Compiler Name="SuspiciousTypecast">True</Compiler>
     <Compiler Name="PrivatePropAccessor">True</Compiler>
     <Compiler Name="UnsafeType">False</Compiler>
     <Compiler Name="UnsafeCode">False</Compiler>
     <Compiler Name="UnsafeCast">False</Compiler>
     <Compiler Name="OptionTruncated">True</Compiler>
     <Compiler Name="WideCharReduced">True</Compiler>
     <Compiler Name="DuplicatesIgnored">True</Compiler>
     <Compiler Name="UnitInitSeq">True</Compiler>
     <Compiler Name="LocalPInvoke">True</Compiler>
     <Compiler Name="MessageDirective">True</Compiler>
     <Compiler Name="CodePage"></Compiler>
   </Compiler>
   <Linker>
     <Linker Name="MapFile">0</Linker>
     <Linker Name="OutputObjs">0</Linker>
     <Linker Name="GenerateHpps">False</Linker>
     <Linker Name="ConsoleApp">1</Linker>
     <Linker Name="DebugInfo">False</Linker>
     <Linker Name="RemoteSymbols">False</Linker>
     <Linker Name="GenerateDRC">False</Linker>
     <Linker Name="MinStackSize">16384</Linker>
     <Linker Name="MaxStackSize">1048576</Linker>
     <Linker Name="ImageBase">4194304</Linker>
     <Linker Name="ExeDescription"></Linker>
   </Linker>
   <Directories>
     <Directories Name="OutputDir"></Directories>
     <Directories Name="UnitOutputDir"></Directories>
     <Directories Name="PackageDLLOutputDir"></Directories>
     <Directories Name="PackageDCPOutputDir"></Directories>
     <Directories Name="SearchPath"></Directories>
     <Directories Name="Packages">vclx;vcl;rtl;dbrtl;vcldb</Directories>
     <Directories Name="Conditionals"></Directories>
     <Directories Name="DebugSourceDirs"></Directories>
     <Directories Name="UsePackages">True</Directories>
   </Directories>
   <Parameters>
     <Parameters Name="RunParams"></Parameters>
     <Parameters Name="HostApplication"></Parameters>
     <Parameters Name="Launcher"></Parameters>
     <Parameters Name="UseLauncher">False</Parameters>
     <Parameters Name="DebugCWD"></Parameters>
     <Parameters Name="Debug Symbols Search Path"></Parameters>
     <Parameters Name="LoadAllSymbols">True</Parameters>
     <Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
   </Parameters>
   <Language>
     <Language Name="ActiveLang"></Language>
     <Language Name="ProjectLang">$00000000</Language>
     <Language Name="RootDir"></Language>
   </Language>
 </Delphi.Personality>
</BorlandProject>


 
Mystic ©   (2009-05-25 00:57) [74]

> Что тут нечитабельного и монстроидального?
> я даже больше скажу: чем сложнее ХМL - тем он читабельнее.

Ок, пример посложнее

http://mu.webest.net/prog/01.xml
http://mu.webest.net/prog/02.pgn


> А если не читать?
> Если мы с тобой захотели обменяться данными? Нам не надо
> договариваться практически ниочем, если и ты и я можем выгрузить-
> загрузить через XML.


Итак, ты мне прислал базу шахматных партий в XML. Одна партия в XML заняла 9 Кб, PGN для сравнения занял 1 Кб. База из трех миллионов партий это 3 гигобайта. XML получается 18 Gb. Т. е. мне придется скачать 4 Gb твоего zip-нутого XML (против 1Gb зипнутого PGN), потом мне придется распаковать его (причем искать куда). Далее scid PGN на 3 000 000 000 партий открыл за 10 минут. Сколько будет открываться XML мне даже страшно представить. В любом случае открыть его мне нечем, ибо ни одна из шахматных баз, что у меня стоит на компе, не понимает XML.

Вообще, как ни странно, на моем компе очень мало XML. Из текстовых форматов PGN, SGF, TEX, языки программирования, DFM, субтитры. К XML можно отнести только HTML (но читать его глазами упаси господь) и настройки в Delphi и VS, и еще Colorer.


 
DVM ©   (2009-05-25 01:12) [75]


> Игорь Шевченко ©   (25.05.09 00:55) [73]

Напугать меня хотели? :) Не выйдет.

Если серьезно, вот непонятно мне, зачем в приведенном XML огромное количество раз встречается <Compiler Name="...">...</Compiler>. Это что, читабельности прибавляет? Если что это и прибавляет, так объема более ничего.
Можно было просто написать:

[Compiler]
ZeroNilCompat=True
StringConstTruncated=True
....
и т.д.

И проще и нагляднее. Если с умом подойти, то и вложенность можно не менее наглядно изобразить.


 
Игорь Шевченко ©   (2009-05-25 01:13) [76]

Mystic ©   (25.05.09 00:57) [74]

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

Я правда не совсем понимаю, нафига 3 миллиона "открывать", но у шахматистов свои тараканы, Паша Хомицкий тоже одно время пытался все и сразу видеть.


 
Игорь Шевченко ©   (2009-05-25 01:17) [77]

DVM ©   (25.05.09 01:12) [75]

Тут один момент есть - bdsproj обычно никто, кроме среды, не читает и не пишет. Я достаточно регулярно меняю вручную - при каких-то условиях bdsproj для пакета упорно желает вставлять свою личную VersionInfo, что мне совершенно излишне и приводит к  ошибкам компиляции. Это единственный момент, когда я открываю bdsproj, как текст.
Я к чему - не читают его обычно глазами...А EXEшнику гораздо проще знать, файл, который он будет читать, можно стандартно провалидировать, он допускает расширение для будущих версий так, что предыдущие версии не сломаются при чтении, и т.п.


 
Кто б сомневался ©   (2009-05-25 01:21) [78]


> > И игрушках параметры хранятся в ini. Дык все продвинутые
>
> > юзеры лезут туда.
>
> Из этого делается вывод - XML - нечитабелен.


Мягко говоря. Очень трудно читать его.


 
DVM ©   (2009-05-25 01:22) [79]


> А EXEшнику гораздо проще знать, файл, который он будет читать,
>  можно стандартно провалидировать

Вот здесь я согласен.


 
KilkennyCat ©   (2009-05-25 01:24) [80]


> огромное количество раз встречается <Compiler Name="...">.
> ..</Compiler>.


<Compiler>
    <Compiler Name="A">8</Compiler>
</Compiler>

я бы так создал
<Compiler>
    <A value="8"></A>
</Compiler>

Тем самым избежав возможной ошибки закрывающего тэга



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

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

Наверх




Память: 0.68 MB
Время: 0.021 c
15-1244734543
12
2009-06-11 19:35
2009.08.09
Кодировка в неком мобильном устройстве + ADOquery


15-1244550120
Dmk
2009-06-09 16:22
2009.08.09
Появилась вторая сеть


15-1244579405
Юрий
2009-06-10 00:30
2009.08.09
С днем рождения ! 10 июня 2009 среда


2-1244622176
Apic
2009-06-10 12:22
2009.08.09
смена атрибутов файла


2-1245062615
Petr
2009-06-15 14:43
2009.08.09
Работа с MS Word