Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Пользовательские настройки и их хранение, Пользовательские настройки и их хранение 
V
    Опции темы
Dem_max
Дата 3.7.2013, 04:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 14
Всего: 39



Цитата(Alexeis @ 29.5.2013,  10:49)
А ну да, еще Ini файлы по спецификации не поддерживают юникод. Если и можно работать в юникоде, то специальными библиотеками, выходящими за рамки спецификации.

Не знаю как у тебя, но у меня в Ini файле хранятся юникодные строки, и пользуюсь обычным TIniFile !!!!


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
Usper
Дата 3.7.2013, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 13.4.2007

Репутация: 15
Всего: 15



volatile, у меня в ProgramFiles в семёрке в каталоге оперы валяются какие-то логи. Значит ли это, что всё-таки можно исхитрится и записать что-нибудь в ProgramFiles без админских прав? На самом деле мне не ini файл нужно сохранять, а результаты калибровки прибора (по сути просто текстовый файл с цифрами) и как-то не логично их хранить где-то отдельно. Но похоже другого выхода нет.


--------------------
На посохе волшебном нехилый набалдашник, большой такой, огромный, нехилый набалдашник.
PM MAIL   Вверх
xvr
Дата 3.7.2013, 09:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 48
Всего: 223



Цитата(Usper @  3.7.2013,  09:51 Найти цитируемый пост)
Значит ли это, что всё-таки можно исхитрится и записать что-нибудь в ProgramFiles без админских прав?

Почти. Вот на wiki есть статья по этому поводу

PM MAIL   Вверх
volatile
Дата 3.7.2013, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: 3
Всего: 85



Цитата(Usper @  3.7.2013,  09:51 Найти цитируемый пост)
у меня в ProgramFiles в семёрке в каталоге оперы валяются какие-то логи.

Скорей всего это логи инсталятора, который всегда запускаецца с админ правами.
Опера врядли будет туда писать.

Добавлено через 7 минут и 18 секунд
Вообще по идеологии M$, в ProgramFiles обычная программа не должна ничего писать.
Если нужно что-то общее для всех, то есть соответствующий каталог "\Users\All Users\" или что-то типо того.

Добавлено через 13 минут и 9 секунд
Цитата(volatile @  3.7.2013,  11:43 Найти цитируемый пост)
 "\Users\All Users\" или что-то типо того. 

есть переменная окружения ALLUSERSPROFILE

PM MAIL   Вверх
Usper
Дата 3.7.2013, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 13.4.2007

Репутация: 15
Всего: 15



Да нет, это логи краша Java-машины smile правда они подозрительно старые.
В общем картина вцелом ясна, нужно забить на порочную практику писать куда хочешь и что хочешь smile даже если это вызывает определённые (на самом деле довольно сильные! приборов к компу может быть подключено несколько и калибровочные данные у каждого свои, пока это решается созданием отдельных папочек для каждого прибора) неудобства. Всем спасибо!



--------------------
На посохе волшебном нехилый набалдашник, большой такой, огромный, нехилый набалдашник.
PM MAIL   Вверх
VasRip
Дата 8.7.2013, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 16.9.2006
Где: РоссийскаяХохлянд ия

Репутация: нет
Всего: нет



ну первое это права админа) а второе не вижу не каких проблем писать рядом с исполнимым файлом
пишу
Код

void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
TIniFile *Ini=new  TIniFile(GetCurrentDir()+"/options.ini"); //настройк
Ini->WriteInteger("Edits","DBGrid1",DBGrid1->Width);
Ini->WriteInteger("Edits","DBGrid1_ID_OBJECT",DBGrid1->Columns->Items[0]->Width);
Ini->WriteInteger("Edits","DBGrid1_FIO",DBGrid1->Columns->Items[1]->Width);
Ini->WriteInteger("Edits","DBGrid1_ADDRESS",DBGrid1->Columns->Items[2]->Width);

Ini->WriteInteger("Edits","DBGrid2",DBGrid2->Width);
Ini->WriteInteger("Edits","DBGrid2_ID_OBJECT",DBGrid2->Columns->Items[0]->Width);
Ini->WriteInteger("Edits","DBGrid2_DAT",DBGrid2->Columns->Items[1]->Width);
Ini->WriteInteger("Edits","DBGrid2_RESULT",DBGrid2->Columns->Items[4]->Width);

delete Ini;
}


читаю
Код

void __fastcall TForm1::FormCreate(TObject *Sender)
{



TIniFile *Ini=new  TIniFile(GetCurrentDir()+"/options.ini"); //настройк
 DBGrid1->Width=Ini->ReadInteger("Edits","DBGrid1",0);
 DBGrid1->Columns->Items[0]->Width=Ini->ReadInteger("Edits","DBGrid1_ID_OBJECT",0);
 DBGrid1->Columns->Items[1]->Width=Ini->ReadInteger("Edits","DBGrid1_FIO",0);
 DBGrid1->Columns->Items[2]->Width=Ini->ReadInteger("Edits","DBGrid1_ADDRESS",0);
 DBGrid1->Font->Size=Ini->ReadInteger("Font","Font_size",0);
 DBGrid1->Font->Name=Ini->ReadString("Font","Font_Font","000");

 DBGrid2->Width=Ini->ReadInteger("Edits","DBGrid2",0);
 DBGrid2->Columns->Items[0]->Width=Ini->ReadInteger("Edits","DBGrid2_ID_OBJECT",0);
 DBGrid2->Columns->Items[1]->Width=Ini->ReadInteger("Edits","DBGrid2_DAT",0);
 DBGrid2->Columns->Items[4]->Width=Ini->ReadInteger("Edits","DBGrid2_RESULT",0);
 DBGrid2->Font->Size=Ini->ReadInteger("Font","Font_size",0);
 DBGrid2->Font->Name=Ini->ReadString("Font","Font_Font","000");
 delete Ini;



}


Единственная проблема это права админа. 

PM MAIL   Вверх
volatile
Дата 8.7.2013, 22:59 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: 3
Всего: 85



1.
Цитата(VasRip @  8.7.2013,  13:54 Найти цитируемый пост)
Единственная проблема это права админа. 

а никто и не говорил что там какие-то проблемы, кроме прав админа.

2.
Цитата(VasRip @  8.7.2013,  13:54 Найти цитируемый пост)
 TIniFile(GetCurrentDir()+"/options.ini"); //настройк

Вы пишете не в каталог программы, а в текущую директорию.
То что они у вас по случаю совпадают, не означает что так будет всегда.

PM MAIL   Вверх
Dem_max
Дата 9.7.2013, 09:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 14
Всего: 39



Цитата

То что они у вас по случаю совпадают, не означает что так будет всегда.

Все верно, а иногда current dir может выдавать хитрый путь куда либо !!!


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0759 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.