Russian Qt Forum

Qt => XML => Тема начата: Resager от Январь 22, 2010, 07:48



Название: Что быстрее, работа с XML or INI
Отправлено: Resager от Январь 22, 2010, 07:48
Вобщем по сабжу...
Функции: чтение/запись


Название: Re: Что быстрее, работа с XML or INI
Отправлено: niXman от Январь 22, 2010, 07:55
у INI файлов проще синтаксис, следовательно, их проще парсить.


Название: Re: Что быстрее, работа с XML or INI
Отправлено: ecspertiza от Январь 22, 2010, 09:18
Мне кажется еше немаловажно знать зачем тебе они нужны, если для хранения настроек софта то однозначна INI ,а если для синхронизации двух БД со сложной структурой то тут наверное лудше XML :)


Название: Re: Что быстрее, работа с XML or INI
Отправлено: panAlexey от Январь 22, 2010, 15:06
Вобщем по сабжу...
Функции: чтение/запись
естественно с ini.
XML - вообще суют куда не попадя без оглядки на производительность....
Особенно мне "нравится" подход: импорт/экспорт в 1С сделан через xml....
Обычная тема на 1С-ных форумах: "Че делать? После пары часов выгрузки получаю Out of memory! Хелп!"..
руки поотрывал бы....
ПС. Посмотри как сделана система настроек в SCiTE:
Код:
[FileExt]             Команды предназначенные только для конкретного типа файлов
# ----------------------------------------------
command.submenu.name.1.*=$(FileExt)
    # Договоримся, что командам предназначенным только для конкретного типа файлов, будем давать номера от 0 до 19
    # тогда все они будут в этом подменю
    command.parent.0.*=1
    command.parent.1.*=1
    command.parent.2.*=1
    command.parent.3.*=1
    command.parent.4.*=1
    command.parent.5.*=1
    command.parent.6.*=1
    command.parent.7.*=1
    command.parent.8.*=1
    command.parent.9.*=1
    command.parent.10.*=1
    command.parent.11.*=1
    command.parent.12.*=1
    command.parent.13.*=1
    command.parent.14.*=1
    command.parent.15.*=1
    command.parent.16.*=1
    command.parent.17.*=1
    command.parent.18.*=1
    command.parent.19.*=1
    # ----------------------------------------------
    command.name.17.*.vbs;*.js;*.wsf=Execute Selection
    command.17.*.vbs;*.js;*.wsf=CMD /C MORE > %TEMP%\tmp.$(FileExt) && "$(SciteDefaultHome)\scite.exe" -menucommand:420 && cscript /nologo %TEMP%\tmp.$(FileExt)
    command.input.17.*.vbs;*.js;*.wsf=$(CurrentSelection)
    command.mode.17.*.vbs;*.js;*.wsf=subsystem:console,savebefore:no
    # ----------------------------------------------
    command.name.18.*.vbs;*.js;*.hta=Display COM object in OLE Viewer
    command.18.*.vbs;*.js;*.hta=wscript "$(SciteDefaultHome)\tools\display_com_object_in_ole_viewer.vbs"
    command.input.18.*.vbs;*.js;*.hta=$(CurrentSelection)
    command.mode.18.*.vbs;*.js;*.hta=subsystem:windows,replaceselection:no,savebefore:no
    # ----------------------------------------------
    command.separator.19.*=1
    command.name.19.*=Open API file
    command.19.*=dostring \
                for api_filename in props["APIPath"]:gmatch("[^;]+") do \
                  scite.Open(api_filename) \
                end
    command.mode.19.*=subsystem:lua,savebefore:no
    CN_OPENAPIFILE=019
Оттуда и парсер можно взять....


Название: Re: Что быстрее, работа с XML or INI
Отправлено: SABROG от Январь 22, 2010, 20:22
Данные и настройки кстати можно вообще в двоичном виде хранить через QDataStream и тогда уже вопрос будет стоять так: что быстрее двоичные данные из QDataStream или ini?

А вообще спросите себя часто ли вы редактируете вручную xml или ini файлы, чтобы поменять настройки программы (в linux оно может конечно и часто, но это обычно настройки консольных программ без интерфейса)? Если даже программа не запускается из-за кривых настроек обычно достаточно грохнуть файл.


Название: Re: Что быстрее, работа с XML or INI
Отправлено: panAlexey от Январь 23, 2010, 02:30
А вообще спросите себя часто ли вы редактируете вручную xml или ini файлы, чтобы поменять настройки программы (в linux оно может конечно и часто, но это обычно настройки консольных программ без интерфейса)?
4 раза лазил в настройки code::block в последнее время.
Почему-то съезжают координаты панели инструментов "Debug" совсем за экран. Запарился их на место ставить. Руки бы поотрывал перцам хранящим настройки в XML :(((
вот кусок:
Код:
				<view1>
<NAME>
<str>
<![CDATA[Code::Blocks default]]>
</str>
</NAME>
<DATA>
<str>
<![CDATA[layout2|name=ManagementPane;caption=Management;state=2099196;dir=4;layer=1;row=0;pos=0;prop=87314;bestw=144;besth=626;minw=100;minh=100;maxw=-1;maxh=-1;floatx=0;floaty=816;floatw=400;floath=250|name=MessagesPane;caption=Logs & others;state=2099196;dir=3;layer=0;row=1;pos=0;prop=204197;bestw=1572;besth=99;minw=-1;minh=-1;maxw=-1;maxh=-1;floatx=28;floaty=894;floatw=821;floath=212|name=MainToolbar;caption=Main Toolbar;state=2108156;dir=1;layer=10;row=4;pos=0;prop=100000;bestw=277;besth=23;minw=-1;minh=-1;maxw=-1;maxh=-1;floatx=648;floaty=179;floatw=294;floath=47|name=MainPane;caption=;state=17152;dir=5;layer=0;row=0;pos=0;prop=100000;bestw=20;besth=20;minw=-1;minh=-1;maxw=-1;maxh=-1;floatx=-1;floaty=-1;floatw=-1;floath=-1|name=ScriptConsole;caption=Scripting console;state=2099198;dir=3;layer=3;row=0;pos=0;prop=92954;bestw=217;besth=100;minw=100;minh=100;maxw=-1;maxh=-1;floatx=1;floaty=681;floatw=400;floath=250|name=SymbolsBrowser;caption=Symbols browser;state=2099196;dir=2;layer=0;row=0;pos=0;prop=100000;bestw=200;besth=250;minw=150;minh=150;maxw=-1;maxh=-1;floatx=-1;floaty=-1;floatw=200;floath=250|name=CodeCompletionToolbar;caption=Code completion Toolbar;state=2108159;dir=1;layer=10;row=1;pos=31;prop=100000;bestw=825;besth=23;minw=-1;minh=-1;maxw=-1;maxh=-1;floatx=274;floaty=202;floatw=840;floath=47|name=CodeSnippetsPane;caption=CodeSnippets;state=2099198;dir=2;layer=0;row=5;pos=1;prop=100000;bestw=300;besth=400;minw=30;minh=40;maxw=-1;maxh=-1;floatx=1079;floaty=70;floatw=300;floath=400|name=CompilerToolbar;caption=Compiler Toolbar;state=2108156;dir=1;layer=10;row=4;pos=288;prop=100000;bestw=342;besth=23;minw=-1;minh=-1;maxw=-1;maxh=-1;floatx=-1;floaty=-1;floatw=-1;floath=-1|name=DisassemblyPane;caption=Disassembly;state=2099199;dir=4;layer=0;row=0;pos=0;prop=100000;bestw=350;besth=250;minw=150;minh=150;maxw=-1;maxh=-1;floatx=-1;floaty=-1;floatw=338;floath=238|name=CPURegistersPane;caption=CPU Registers;state=2099199;dir=4;layer=0;row=0;pos=0;prop=100000;bestw=350;besth=250;minw=150;minh=150;maxw=-1;maxh=-1;floatx=-1;floaty=-1;floatw=338;floath=238|name=CallStackPane;caption=Call stack;state=2099199;dir=4;layer=0;row=0;pos=0;prop=100000;bestw=150;besth=150;minw=150;minh=150;maxw=-1;maxh=-1;floatx=-1;floaty=-1;floatw=438;floath=174|name=WatchesPane;caption=Watches;state=2099199;dir=4;layer=0;row=0;pos=0;prop=100000;bestw=150;besth=250;minw=150;minh=150;maxw=-1;maxh=-1;floatx=-1;floaty=-1;floatw=158;floath=238|name=BreakpointsPane;caption=Breakpoints;state=2099198;dir=4;layer=1;row=0;pos=2;prop=49312;bestw=350;besth=250;minw=150;minh=150;maxw=-1;maxh=-1;floatx=2;floaty=383;floatw=350;floath=250|name=ExamineMemoryPane;caption=Memory;state=2099199;dir=4;layer=0;row=0;pos=0;prop=100000;bestw=450;besth=250;minw=350;minh=150;maxw=-1;maxh=-1;floatx=-1;floaty=-1;floatw=438;floath=238|name=ThreadsPane;caption=Running threads;state=2099199;dir=4;layer=0;row=0;pos=0;prop=100000;bestw=350;besth=75;minw=250;minh=75;maxw=-1;maxh=-1;floatx=-1;floaty=-1;floatw=438;floath=99|name=DebuggerToolbar;caption=Debugger Toolbar;state=2108156;dir=1;layer=10;row=4;pos=641;prop=100000;bestw=215;besth=23;minw=-1;minh=-1;maxw=-1;maxh=-1;floatx=-1;floaty=-1;floatw=-1;floath=-1|name=DefMimeHandler_HTMLViewer;caption=HTML viewer;state=2099198;dir=3;layer=1;row=0;pos=0;prop=115501;bestw=350;besth=250;minw=150;minh=150;maxw=-1;maxh=-1;floatx=-1;floaty=-1;floatw=350;floath=250|name=MANViewer;caption=Man/Html pages viewer;state=2099198;dir=2;layer=1;row=0;pos=0;prop=100000;bestw=320;besth=240;minw=240;minh=160;maxw=-1;maxh=-1;floatx=1111;floaty=267;floatw=320;floath=240|name=IncrementalSearchToolbar;caption=IncrementalSearch Toolbar;state=2108156;dir=1;layer=10;row=4;pos=867;prop=100000;bestw=306;besth=23;minw=-1;minh=-1;maxw=-1;maxh=-1;floatx=-1;floaty=-1;floatw=-1;floath=-1|name=OpenFilesPane;caption=Open files list;state=2099196;dir=4;layer=1;row=0;pos=1;prop=36304;bestw=150;besth=100;minw=50;minh=50;maxw=-1;maxh=-1;floatx=178;floaty=71;floatw=100;floath=150|name=ThreadSearchToolbar;caption=ThreadSearch Toolbar;state=2108156;dir=1;layer=10;row=4;pos=1184;prop=100000;bestw=178;besth=23;minw=-1;minh=-1;maxw=-1;maxh=-1;floatx=-1;floaty=-1;floatw=-1;floath=-1|name=TodoListPanev2.0.0;caption=To-Do list;state=2099198;dir=2;layer=1;row=0;pos=0;prop=50945;bestw=352;besth=94;minw=352;minh=94;maxw=-1;maxh=-1;floatx=666;floaty=546;floatw=360;floath=118|name=wxSmithTwoPanes_ResourceBrowser;caption=wxSmith - Resource Browser;state=2099198;dir=2;layer=0;row=3;pos=0;prop=100000;bestw=150;besth=450;minw=50;minh=50;maxw=-1;maxh=-1;floatx=7;floaty=64;floatw=150;floath=450|name=wxSmithTwoPanes_PropertyBrowser;caption=wxSmith - Property Browser;state=2099198;dir=4;layer=0;row=0;pos=0;prop=100000;bestw=150;besth=450;minw=50;minh=50;maxw=-1;maxh=-1;floatx=-1;floaty=-1;floatw=150;floath=450|dock_size(5,0,0)=22|dock_size(1,10,4)=25|dock_size(4,1,0)=166|dock_size(2,0,0)=185|dock_size(3,0,1)=179|]]>
</str>
</DATA>
</view1>
пс. Понял, что гадит новая ревизия кодеблока, работаю пока на старой.