|
|
|
А какой все-таки максимально допустимый размер ini-файла?
|
|||
|---|---|---|---|
|
#18+
Предполагается, что с файлом я работаю строго через API, в основном вот эта: GetPrivateProfileInt function Дополнительно могу сообщить: сам файл в кодировке Unicode, т.е. W-функции. Файл предполагается быть большим, т.е. м.б. даже раз в несколько больше чем 64кБ. Проблем со скоростью чтения через API ну лично я никак не наблюдаю (сейчас пока чуть больше 64кБ). Предполагается использование ini-конструкций для "языковой поддержки". Здесь заранее прошу не критиковать, почему не ресурсы, БД, реестр и прочая "более современная" хрень. Мне так удобно. Плюс это удобно для пользователя, если он будет переводить (даже без интерфейса переводчика). Типа скопировал английские файлы, открыл и редактируешь. На ряде форумов видел что не может быть больше 64кБ. На Microsoft никакого подтверждения этому не нашел. Единственное: GetPrivateProfileSection function nSize [in] The size of the buffer pointed to by the lpReturnedString parameter, in characters. The maximum profile section size is 32,767 characters. Но это размер отдельной секции (который точно не будет больше), а не всего файла и скорее намекает на отсутствие каких-либо ограничений на размер самого файла. Так как все-таки обстоят с этим дела? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 20:49 |
|
||
|
А какой все-таки максимально допустимый размер ini-файла?
|
|||
|---|---|---|---|
|
#18+
Дмитрий77, по моему проще и надежнее проверить самостоятельно. Сгенерируй файл с секциями размером больше 32 Кб, файл общим размером больше 64 Кб и т.д. и убедись что чтение/запись происходит без ошибок. Дмитрий77Предполагается использование ini-конструкций для "языковой поддержки". Здесь заранее прошу не критиковать, почему не ресурсы, БД, реестр и прочая "более современная" хрень. Сам по себе формат ini вопросов не вызывает, в отличие от использования функций которые помечены как оставленные для совместимости с 16-битовой Windows. Я бы использовал собственный парсер INI. Тогда можно точно быть увереным в отсутствии ограничений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 21:16 |
|
||
|
А какой все-таки максимально допустимый размер ini-файла?
|
|||
|---|---|---|---|
|
#18+
Как где-то читал INI в виндовсе обернут средствами работы с реестром. Для ускорения. Причем точно могу сказать что обернут нездорово, в плане записи, сам пользуюсь ини и натыкался в Win7 (в XP работало) на случаи что некоторые записи не пишутся, т.е. прога пишет (даже читает для проверки), закрывается, запускается и читает то что было до записи. Это был капец. Если не хочешь зависеть от ОС - надежнее сделать свой функционал или использовать какие-то опенсорцные наработки из серии NoSql или встраиваемые sql-движки типа sqlite. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 21:40 |
|
||
|
А какой все-таки максимально допустимый размер ini-файла?
|
|||
|---|---|---|---|
|
#18+
Дмитрий77На Microsoft никакого подтверждения этому не нашел. тынц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 21:45 |
|
||
|
А какой все-таки максимально допустимый размер ini-файла?
|
|||
|---|---|---|---|
|
#18+
Dima TЕсли не хочешь зависеть от ОС - надежнее сделать свой функционал или использовать какие-то опенсорцные наработки из серии NoSql или встраиваемые sql-движки типа sqlite. если ограниченно человекочитаемый или записываемый - JSON или XML bazileЯ бы использовал собственный парсер INI. Тогда можно точно быть увереным в отсутствии ограничений. +много ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 22:21 |
|
||
|
А какой все-таки максимально допустимый размер ini-файла?
|
|||
|---|---|---|---|
|
#18+
hclubmk тынц Видел я ее. Не убедительно: Applies to Microsoft Windows 3.0 Standard Edition Microsoft Windows 3.1 Standard Edition Microsoft Windows 3.11 Standard Edition Microsoft Windows for Workgroups 3.1 Microsoft Windows for Workgroups 3.11 Речь идет об XP-Win10 (Win2003-2012R2). Dima TКак где-то читал INI в виндовсе обернут средствами работы с реестром. Для ускорения. Причем точно могу сказать что обернут нездорово, в плане записи, сам пользуюсь ини и натыкался в Win7 (в XP работало) на случаи что некоторые записи не пишутся, т.е. прога пишет (даже читает для проверки), закрывается, запускается и читает то что было до записи. Это был капец. На проблемы такие не нарывался (с некоторых пор отказался от настроек в реестре в пользу INI), возможно у тебя где-то была ошибка в логике кода или в чем-то еще, у меня все работает и из XP, и из 7 и из 8 (что касается настроек проги), не готов это обсуждать. В любом случае, чтение русского напр. перевода при загрузке из ini -это чистая статика. А именно API работают да, очень быстро, проверено. написав свой парсер я как раз рискую нарваться на тормоза при указанных размерах, поэтому нет. Что касается комментариев "only for compatibility with 16-bit Windows-based applications", плевать я думаю на это можно. Там еще написано "Applications should store initialization information in the registry", а с т.зрения .Net, на котором сейчас пишу походу и реестр - старье, типа все надо в XML хранить и т.п. И что, каждый раз следовать моде? bazileДмитрий77, по моему проще и надежнее проверить самостоятельно. Сгенерируй файл с секциями размером больше 32 Кб, файл общим размером больше 64 Кб и т.д. и убедись что чтение/запись происходит без ошибок. Ну скажем так (не очень чистый эксперимент), я скопировал первую секцию раз 150 (в начало файла), и получилось что-то около 300кб, при этом проблем с чтением нижних секций не возникло, и потери скорости чтения тоже не возникло. Так что пока проблем не вижу. Проверял на современном компе с Win8.1, для чистоты надо б проверить на P-III на Win2003 (есть у меня такая штука в работе), но я думаю вряд ли что-то изменилось с этими API с тех пор. По поводу "с секциями размером больше 32 Кб" -да нет и не будет у меня таких, и кстати говорится про ограничение секции в "32,767 characters", т.е. символов, а не байт, а у меня сейчас в сумме по всем секциям файл 64кб (в Юникоде!!!, который W, а не который UTF8 в .Net , да какая разница), и вряд ли будет больше чем в 2-3 раза по окончании "работ". Пока тупо двигаюсь в заданном направлении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 22:29 |
|
||
|
А какой все-таки максимально допустимый размер ini-файла?
|
|||
|---|---|---|---|
|
#18+
Дмитрий77А именно API работают да, очень быстро, проверено. написав свой парсер я как раз рискую нарваться на тормоза при указанных размерах, поэтому нет. думаешь API функции - небожители писали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 22:34 |
|
||
|
А какой все-таки максимально допустимый размер ini-файла?
|
|||
|---|---|---|---|
|
#18+
Изопропилдумаешь API функции - небожители писали? Нет конечно, но у меня вряд ли получится лучше. Особенно если этот парсер писать через .Net классы, которые в большинстве своем "курица лапой". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 22:44 |
|
||
|
А какой все-таки максимально допустимый размер ini-файла?
|
|||
|---|---|---|---|
|
#18+
Дмитрий77Изопропилдумаешь API функции - небожители писали? Нет конечно, но у меня вряд ли получится лучше. Особенно если этот парсер писать через .Net классы, которые в большинстве своем "курица лапой". Mayton'у идею можно подкинуть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 23:04 |
|
||
|
А какой все-таки максимально допустимый размер ini-файла?
|
|||
|---|---|---|---|
|
#18+
ИзопропилMayton'у идею можно подкинуть Чтоб он типа оптимальный парсер на C++ за меня написал? И тема эта на C++-форуме будет жеваться недели 2. Время где? Итак уже отупел вторую неделю только и пишу, на каждую сраную Label типа Код: vbnet 1. И это еще хорошо, когда сраная label, а если текст составленный из кусков... и конца не видно, первый exe-шник только поверхностно до половины м.б. допилил, до MsgBox-ов еще даже не дошел. Не, а как иначе, этот механизм - это рутина еще та, будь то БД или что-то другое. Интеллекта в этой работе -нуль. А времени уйдет - до фига. Причем на выходе из реально законченного то будет только "русский", который не понятно нужен ли, при текущей то ситуации (его даже и не стоит втыкать в основную сборку). Самое паршивое - это именно аккуратная рутинная имплементация самого механизма загрузки языка (в силу объема тупой работы), интерфейс переводчика, про который говорил если уж захочу - это то как раз наверно фигня -два редактируемых столбика рядом загрузить, ну там на секции разбить для понятности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 23:51 |
|
||
|
А какой все-таки максимально допустимый размер ini-файла?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 02:07 |
|
||
|
А какой все-таки максимально допустимый размер ini-файла?
|
|||
|---|---|---|---|
|
#18+
ЗимарглТипа велосипед. https://msdn.microsoft.com/ru-ru/library/y99d1cd3(v=vs.110).aspx Уже обсуждали в соотв. теме. Этот стандартный метод не дает возможности пользователю самостоятельно создавать произвольный языковой профиль из шаблона и править его. Причем следует заметить что рутины "для каждой кнопки" там никак не меньше и при этом эту рутину надо делать заново для каждого нового языка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 03:06 |
|
||
|
А какой все-таки максимально допустимый размер ini-файла?
|
|||
|---|---|---|---|
|
#18+
Дмитрий77а если текст составленный из кусков... String.Format пусть склеивает, локализовывать только форматную строку потребуется Дмитрий77Итак уже отупел вторую неделю только и пишу, на каждую сраную Label типа многовато параметров у ReadIni - для начала path_Language -точно не нужен, это забота другого метода другого класса (мож там БД или просто "умный" переводчик) если контрол (или форму)передать параметром -имя формы (контрола)можно получить внутри да и ReadIni - не самое удачное название метода Дмитрий77это именно аккуратная рутинная имплементация самого механизма загрузки языка (в силу объема тупой работы) основной объём - это перевод, механизм загрузки - мелочи, причём его можно совершенствовать отдельно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 05:59 |
|
||
|
А какой все-таки максимально допустимый размер ini-файла?
|
|||
|---|---|---|---|
|
#18+
Дмитрий77Речь идет об XP-Win10 (Win2003-2012R2). Dima TКак где-то читал INI в виндовсе обернут средствами работы с реестром. Для ускорения. Причем точно могу сказать что обернут нездорово, в плане записи, сам пользуюсь ини и натыкался в Win7 (в XP работало) на случаи что некоторые записи не пишутся, т.е. прога пишет (даже читает для проверки), закрывается, запускается и читает то что было до записи. Это был капец. На проблемы такие не нарывался (с некоторых пор отказался от настроек в реестре в пользу INI), возможно у тебя где-то была ошибка в логике кода или в чем-то еще, у меня все работает и из XP, и из 7 и из 8 (что касается настроек проги), не готов это обсуждать. В любом случае, чтение русского напр. перевода при загрузке из ini -это чистая статика. Я именно про запись. Ситуация такая: запускается некий расчет и считает около часа. Перелопачивает несколько десятков Гб файлов. В инишник сохраняет дату-время расчета. Дальше идут другие расчеты, основанные на результатах первого, в т.ч. используют эту дату-время из инишнишника. Она правильная. Но при следующем запуске там предыдущая (!). Порешал просто: пишу дополнительно в текстовый файлик, при запуске проверяю там и там, беру большую. При несовпадении запись в лог. Судя по логам - глючит стабильно, больше чем в половине случаев. Если у тебя только чтение, то проблемы нет. По поводу размера: как понял это у тебя перевод интерфейса на разные языки, можешь сделать отдельный INI на каждый язык. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 07:01 |
|
||
|
А какой все-таки максимально допустимый размер ini-файла?
|
|||
|---|---|---|---|
|
#18+
Дмитрий77А какой все-таки максимально допустимый размер ini-файла? 64 килобайта на секцию. размер самого файла ограничен особенностями файловой системы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 08:56 |
|
||
|
А какой все-таки максимально допустимый размер ini-файла?
|
|||
|---|---|---|---|
|
#18+
это официальная информация по делфи, если используется windows api (inifiles.pas). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 08:57 |
|
||
|
|

start [/forum/topic.php?fid=16&gotonew=1&tid=1340911]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
45ms |
get topic data: |
7ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 197ms |
| total: | 312ms |

| 0 / 0 |
