BcfgEdit - редактор конфигов : Эльфы : Форум |
Страница 7 из 48: « 1 ... 3 4 5 6 [7] 8 9 10 11 ... 48 » |
den_po: |
30.07.08, 14:10 |
Tihiy первый пост слабо почитать? |
GaS: |
30.07.08, 18:24 |
sam22 на в800 у меня нет, я про к810 писал... |
dimmss: |
30.07.08, 21:40 |
Что за свн? дайте сайта название! Добавлено 30.7.08 22:13 Каракули в редакторе! |
xoXox: |
30.07.08, 22:16 |
http://perk11.info/elfse/BcfgEdit_main.zip качай этот и каракуль не будет |
dimmss: |
30.07.08, 23:06 |
При выходе из редактора виснет тел. К750 |
BigHercules: |
31.07.08, 10:25 |
Добрый день всем. В BcfgExample.elf есть небольшая ошибка. Данный эльф никогда не загрузить конфигурационный файл с телефона (если конечно есть карта и не будет ошибки, при создании файла на карте). Хотя в коде и есть попытка загрузить. Так как если файла нет на карте, то он там создается. И в случае успешного создания, попытки загрузить с телефона не будет. Я у себя в коде сделал так: Код: #include "..\\include\Lib_Clara.h" #include "..\\include\Dir.h" #include "..\\include\cfg_items.h" #include "conf_loader.h" #define LCFGFILENAME L"BcfgExample.bcfg" const wchar_t *successed_config_path=L""; const wchar_t *successed_config_name=L""; #pragma segment="CONFIG_C" int SaveConfigData(const wchar_t *path,const wchar_t *fname) { int f; char *buf; int result = -1; void *cfg; cfg=(char *)__segment_begin("CONFIG_C"); unsigned int len=(char *)__segment_end("CONFIG_C")-(char *)__segment_begin("CONFIG_C"); if ((buf=new char[len])) { if ((f=_fopen(path,fname,0x204,0x180,0)) >= 0) { if (fwrite(f,cfg,len)==len) result = 0; fclose(f); } delete buf; } if (result >= 0) { successed_config_path=path; successed_config_name=fname; } return(result); } int LoadConfigData(const wchar_t *path,const wchar_t *fname) { int f; char *buf; int result = -1; void *cfg; FSTAT fstat; unsigned int rlen; cfg=(char *)__segment_begin("CONFIG_C"); unsigned int len=(char *)__segment_end("CONFIG_C")-(char *)__segment_begin("CONFIG_C"); if ((buf=new char[len])) { if (isFileExist(path,fname,&fstat) != -1) { if ((f=_fopen(path,fname,0x001,0x180,0)) >= 0) { rlen=fread(f,buf,len); fclose(f); if (rlen!=fstat.fsize || rlen!=len) return SaveConfigData(path,fname); memcpy(cfg,buf,len); result=0; } } delete buf; } if (result >= 0) { successed_config_path=path; successed_config_name=fname; } return(result); } void InitConfig(void) { if (LoadConfigData(GetDir(DIR_ELFS_CONFIG|MEM_INTERNAL),LCFGFILENAME) < 0) { if(LoadConfigData(GetDir(DIR_ELFS_CONFIG|MEM_EXTERNAL),LCFGFILENAME) < 0) { SaveConfigData(GetDir(DIR_ELFS_CONFIG|MEM_INTERNAL),LCFGFILENAME); } } } Я еще сделал, чтобы в начале была попытка загрузить с телефона, а затем уже с карты. Если файл нигде не будет найден, он создается на телефоне. Если же файл будет где-либо найден и он будет не корректный, то он будет перезаписан новым. |
den_po: |
31.07.08, 10:34 |
BigHercules это всего лишь пример. не шаблон, обязательный к использованию в своих эльфах. просто пример. |
BigHercules: |
31.07.08, 10:52 |
den_po пишет: это всего лишь пример. не шаблон, обязательный к использованию в своих эльфах. просто пример. Я знаю, что это пример. Причем, автору ОГРОМОЕ спасибо за проделанную работу. Но только зачастую примеры именно и используют в качестве шаблона. Делают лишь косметические изменения (измение имени конфигурационного файла в данном случае). Я сам так вначале сделал, а потом увидел, что с телефона конфиг не загружается. Кроме того я обратил внимание. что и в других эльфах (в одном точно, т.к. я его использую), авторы которых перешли на bcfg, наблюдается такая же ситуация что и с этим примером. В итоге ошибка начинает переползать дальше... |
KreN: |
31.07.08, 13:58 |
Мне не хочется чтобы конфиги как раньше болтались то в телефоне, то на флэшке, при изменении загрузчика какая уверенность что они не будут болтаться ещё и в ини. Где тут ошибка, что эльфы загружается с карты? У вас что ли по десять карточек на которых на всех нужен эльфпак? На сименсах до сих пор с момента создания конфиги и все данные эльфов и эльфпака лежат на карте и ещё никто не жаловался, и не перетаскивал все на телефон. Какая вероятность больше что повредится фс карты или флэш телефона? Что дешевле купить новую карту или отремонтировать телефон? |
BigHercules: |
31.07.08, 14:25 |
KreN пишет: Мне не хочется чтобы конфиги как раньше болтались то в телефоне, то на флэшке, при изменении загрузчика какая уверенность что они не будут болтаться ещё и в ини. Где тут ошибка, что эльфы загружается с карты? У вас что ли по десять карточек на которых на всех нужен эльфпак? На сименсах до сих пор с момента создания конфиги и все данные эльфов и эльфпака лежат на карте и ещё никто не жаловался, и не перетаскивал все на телефон. Какая вероятность больше что повредится фс карты или флэш телефона? Что дешевле купить новую карту или отремонтировать телефон? Да я не говорю, что если конфиг грузится с карточки, то это ошибка. Я про другое. В загрузчике из примера в случае отсутствия файла по указанному пути всегда создается новый. Код: if (isFileExist(path,fname,&fstat)!=-1) { ... } else { L_SAVENEWCFG: if ((f=_fopen(path,fname,0x204,0x180,0))>=0) { if (fwrite(f,cfg,len)==len) result=0; fclose(f); } } В случае успешного создания файла следующий участок кода никогда не будет выполняться. Код: void InitConfig(void) { if (LoadConfigData(GetDir(DIR_ELFS_CONFIG|MEM_EXTERNAL),L"BcfgExample.bcfg")<0) { LoadConfigData(GetDir(DIR_ELFS_CONFIG|MEM_INTERNAL),L"BcfgExample.bcfg"); } } В приведенном мною примере, в начале будет попытка загрузить конфиг из телефона, затем с карты (можно и изменить последовательность), а затем уже если конфиг нигде не найден, то он будет создан (в моем случае на телефоне). PS. Хотя наверное может быть ты и прав. Просто мы немного поразному представляем как должен работать загрузчик. В моем понимании: сначала искать на карте и телефоне, и если не нашли, то создать. А у тебя получается: если есть карта, то грузим с нее, если ее нету, то тогда уж грузим с телефона. Так что беру свои слова обратно. |
Страница 7 из 48: « 1 ... 3 4 5 6 [7] 8 9 10 11 ... 48 » |
URL этой темы: https://mobilefree.justdanpo.ru/newbb_plus/viewtopic.php?topic_id=3212&start=60 © 2005-2018 supertrubka.org |