Russian Qt Forum
Ноябрь 22, 2024, 22:20 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Что быстрее, работа с XML or INI  (Прочитано 6020 раз)
Resager
Гость
« : Январь 22, 2010, 07:48 »

Вобщем по сабжу...
Функции: чтение/запись
Записан
niXman
Гость
« Ответ #1 : Январь 22, 2010, 07:55 »

у INI файлов проще синтаксис, следовательно, их проще парсить.
Записан
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #2 : Январь 22, 2010, 09:18 »

Мне кажется еше немаловажно знать зачем тебе они нужны, если для хранения настроек софта то однозначна INI ,а если для синхронизации двух БД со сложной структурой то тут наверное лудше XML Улыбающийся
Записан
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #3 : Январь 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
Оттуда и парсер можно взять....
Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
SABROG
Гость
« Ответ #4 : Январь 22, 2010, 20:22 »

Данные и настройки кстати можно вообще в двоичном виде хранить через QDataStream и тогда уже вопрос будет стоять так: что быстрее двоичные данные из QDataStream или ini?

А вообще спросите себя часто ли вы редактируете вручную xml или ini файлы, чтобы поменять настройки программы (в linux оно может конечно и часто, но это обычно настройки консольных программ без интерфейса)? Если даже программа не запускается из-за кривых настроек обычно достаточно грохнуть файл.
« Последнее редактирование: Январь 22, 2010, 20:24 от SABROG » Записан
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #5 : Январь 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>
пс. Понял, что гадит новая ревизия кодеблока, работаю пока на старой.
« Последнее редактирование: Январь 24, 2010, 19:39 от panAlexey » Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.05 секунд. Запросов: 23.