Russian Qt Forum

Qt => Общие вопросы => Тема начата: Danila_Bagrofff от Июль 26, 2012, 18:03



Название: Получить полный путь до переменной среды
Отправлено: 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 что-то тоже не помогли...

Как получить нормальный путь до переменной, определенной таким вот образом (через %%)?


Название: Re: Получить полный путь до переменной среды
Отправлено: mutineer от Июль 26, 2012, 18:11
Считать значение переменной окружения APPDATA и подставить


Название: Re: Получить полный путь до переменной среды
Отправлено: Danila_Bagrofff от Июль 27, 2012, 09:18
а как это сделать?) Че-та не представляю, как это сделать... откуда это надо прочитать...  ???


Название: Re: Получить полный путь до переменной среды
Отправлено: maint от Июль 27, 2012, 09:26
char *s = getenv("APPDATA");


Название: Re: Получить полный путь до переменной среды
Отправлено: Serr500 от Июль 27, 2012, 09:27
Или через WinAPI GetEnvironmentVariable http://msdn.microsoft.com/en-us/library/windows/desktop/ms683188%28v=vs.85%29.aspx (http://msdn.microsoft.com/en-us/library/windows/desktop/ms683188%28v=vs.85%29.aspx)


Название: Re: Получить полный путь до переменной среды
Отправлено: Danila_Bagrofff от Июль 27, 2012, 09:36
maint, спасибо!

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

Serr500, не, не надо вин апи =) не хочется загромождать проект =)


Название: Re: Получить полный путь до переменной среды
Отправлено: maint от Июль 27, 2012, 09:36
Или через WinAPI GetEnvironmentVariable http://msdn.microsoft.com/en-us/library/windows/desktop/ms683188%28v=vs.85%29.aspx (http://msdn.microsoft.com/en-us/library/windows/desktop/ms683188%28v=vs.85%29.aspx)
угу, если виндовый. Все равно эта функция вызывается. А если линуховый или кросплатформенно, то getenv


Название: Re: Получить полный путь до переменной среды
Отправлено: maint от Июль 27, 2012, 09:42
maint, спасибо!

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

Serr500, не, не надо вин апи =) не хочется загромождать проект =)
тонкость есть одна. При повторном вызове затирается. Если надо хранить, то куда то или через strdup. Тогда навсегда, до освобождения


Название: Re: Получить полный путь до переменной среды
Отправлено: mutineer от Июль 27, 2012, 10:16
а как это сделать?) Че-та не представляю, как это сделать... откуда это надо прочитать...  ???

А в гугле забанили?


Название: Re: Получить полный путь до переменной среды
Отправлено: Danila_Bagrofff от Июль 30, 2012, 12:11
В гугле не нашел программного решения.

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

Как руками работать с переменными окружения - я знаю. Но вот программно достучаться что-то не очень получалось.


Название: Re: Получить полный путь до переменной среды
Отправлено: Alex Custov от Июль 30, 2012, 13:34
В гугле не нашел программного решения.

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

Первая же ссылка по запросу "C++ environment variable"


Название: Re: Получить полный путь до переменной среды
Отправлено: GreatSnake от Июль 30, 2012, 15:38
Цитировать
QString path = "%APPDATA%/settingsMyProg.ini";
Код
C++ (Qt)
path.replace( "%APPDATA%", qgetenv( "APPDATA" ) );