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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Получить полный путь до переменной среды  (Прочитано 8577 раз)
Danila_Bagrofff
Гость
« : Июль 26, 2012, 18:03 »

Вот имею на входе путь к файлу:
Цитировать
QString path = "%APPDATA%/settingsMyProg.ini";

Соответственно файл лежит тут: C:\Documents and Settings\{username}\Application Data

Но пытаюсь открыть его в
Цитировать
QSettings set(path, QSettings::IniFormat);

Но фига с два... Махинации С QDir и QFile что-то тоже не помогли...

Как получить нормальный путь до переменной, определенной таким вот образом (через %%)?
Записан
mutineer
Гость
« Ответ #1 : Июль 26, 2012, 18:11 »

Считать значение переменной окружения APPDATA и подставить
Записан
Danila_Bagrofff
Гость
« Ответ #2 : Июль 27, 2012, 09:18 »

а как это сделать?) Че-та не представляю, как это сделать... откуда это надо прочитать...  Непонимающий
Записан
maint
Гость
« Ответ #3 : Июль 27, 2012, 09:26 »

char *s = getenv("APPDATA");
Записан
Serr500
Гость
« Ответ #4 : Июль 27, 2012, 09:27 »

Или через WinAPI GetEnvironmentVariable http://msdn.microsoft.com/en-us/library/windows/desktop/ms683188%28v=vs.85%29.aspx
Записан
Danila_Bagrofff
Гость
« Ответ #5 : Июль 27, 2012, 09:36 »

maint, спасибо!

Коротко и ясно! =)

Serr500, не, не надо вин апи =) не хочется загромождать проект =)
Записан
maint
Гость
« Ответ #6 : Июль 27, 2012, 09:36 »

угу, если виндовый. Все равно эта функция вызывается. А если линуховый или кросплатформенно, то getenv
Записан
maint
Гость
« Ответ #7 : Июль 27, 2012, 09:42 »

maint, спасибо!

Коротко и ясно! =)

Serr500, не, не надо вин апи =) не хочется загромождать проект =)
тонкость есть одна. При повторном вызове затирается. Если надо хранить, то куда то или через strdup. Тогда навсегда, до освобождения
Записан
mutineer
Гость
« Ответ #8 : Июль 27, 2012, 10:16 »

а как это сделать?) Че-та не представляю, как это сделать... откуда это надо прочитать...  Непонимающий

А в гугле забанили?
Записан
Danila_Bagrofff
Гость
« Ответ #9 : Июль 30, 2012, 12:11 »

В гугле не нашел программного решения.

Точнее, getenv - вот эту функцию не нашел. Может, плохо искал.

Как руками работать с переменными окружения - я знаю. Но вот программно достучаться что-то не очень получалось.
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #10 : Июль 30, 2012, 13:34 »

В гугле не нашел программного решения.

Точнее, getenv - вот эту функцию не нашел. Может, плохо искал.

Первая же ссылка по запросу "C++ environment variable"
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #11 : Июль 30, 2012, 15:38 »

Цитировать
QString path = "%APPDATA%/settingsMyProg.ini";
Код
C++ (Qt)
path.replace( "%APPDATA%", qgetenv( "APPDATA" ) );
Записан

Qt 5.11/4.8.7 (X11/Win)
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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