Правильная загрузка конфиг файла
Сегодня начал писать загрузку конфигураций и мне понравилось что получилось
Я сделал так, что если какой-нибудь умник залезет править конфиги и накосячит, то файл просто удаляется и пишется новый с дефаулт конфигами :) PHP код:
|
Ответ: Правильная загрузка конфиг файла
Кул. :super: Было б круче увидеть набор функций для файла конфигов такого типа:
config.ini Код:
GrWidth=1024 Код:
GrDeepth=32 |
Ответ: Правильная загрузка конфиг файла
Это просто "длясебятина" )
Мне такая заморочка не нужна. Тем более такой подход не избавит от правки кода при изменении полей (я про то что все равно придется в коде прописывать откат), короче я к тому что такой подход жизнь особо не облегчит в конфиг файле, а вот загрузчике уровня, где может быть сотни объектов с десятком параметром, без твоей методы не обойтись! Суть я раскрыл, а кому надо уже доработают :) |
Ответ: Правильная загрузка конфиг файла
что-то типа (код грязненький)
Код:
Const CfgLoader__SEP$="=" Цитата:
Код:
CfgLoader_LoadCfgFromFile("cfg.txt") |
Ответ: Правильная загрузка конфиг файла
Прикольно!
Мне до такого еще далеко... Объясните пожалуста, зачем нужна точка в функции CfgLoader_ParseParam.TOneCfgParam(OneLine$) Т.е. функция пишется специально для этого типа? И еще, я сейчас пишу загрузчик уровня, прокоментируйте пожалуста какие недостатки и подводные камни могут быть PHP код:
|
Ответ: Правильная загрузка конфиг файла
Цитата:
Код:
MyIntegerFunction%() - для интовых якобы можно не ставить, оно по умолчанию int Код:
myTypeVariable.MyTypeName = new MyTypeName Вышеуказанная функция возвращает в качестве результата данные типа TOneCfgParam. Цитата:
Код:
tree { Названия параметров отделены от значений символом "=", поэтому считанную строку разбиваешь на две - до равно и после (в блице функция Instr). Значения могут содержать несколько значений, разделить их можно запятой (как выше для x,y,z) или точкой с запятой или ещё чем-нибудь. По этому символу разобьёшь строку и получишь все параметры. Сохранять такую структуру данных можно сразу из редактора карт. По коду твоему. Вместо такого: Код:
Select levelName Код:
Local fileName$ = "" Код:
intVal = Int(str$) |
Ответ: Правильная загрузка конфиг файла
Спасибо! Полезно!
Вот только мне не нравится что значения надо будет считывать через запятую, может проще в строку все писать tree { positionX=2 positionY=3 positionZ=4 } В таком варианте нет сложности, т.к. можно узнать позицию объекта, и прочитав строку positionX - выполнить PositionEntity ent,positionX,entityY(ent),entityZ(ent). А вот с масштабом такое не проканает, потому что нету такой функции типа EntityScaleX() или чтото вроде.. И вот хз че делать |
Ответ: Правильная загрузка конфиг файла
Зачем разделять? Это только усложнит.
Псевдокод: Код:
Local entityKind$ ;чтоб знать кому параметры устанавливать, можно int-ом сделать |
Ответ: Правильная загрузка конфиг файла
Прикольно написал!!
Всё доступно и понятно! Спасибо большое!! Буду делать :) |
Ответ: Правильная загрузка конфиг файла
Как говорится, "Обращайтесь!" :)
|
Ответ: Правильная загрузка конфиг файла
Вложений: 1
Давно пользуюсь набором функций - не помню кто их автор и где я их взял, но удобно:)
|
Часовой пояс GMT +4, время: 06:18. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot