Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 03.08.2011, 19:57   #1
Painkiller_13
Форумчанин
 
Регистрация: 07.07.2011
Сообщений: 58
Репутация: 8
По умолчанию %userprofile%

Как перевести такую строку %USERPROFILE%, в нормальный вид в DELPHI
чтоб воспринимал как путь
Painkiller_13 вне форума   Ответить с цитированием
Старый 03.08.2011, 20:16   #2
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 23,621
Репутация: 5213
По умолчанию

вот как получить все переменные среды (из DelphiWorld)
Код:

procedure GetEnvironmentStringList(ss:TStrings);
{Переменные среды}
var
  ptr: PChar;
  s: string;
  Done: boolean;
begin
  ss.Clear;
  s:='';
  Done:=FALSE;
  ptr:=windows.GetEnvironmentStrings;
  while Done=false do begin
    if ptr^=#0 then begin
      inc(ptr);
      if ptr^=#0 then Done:=TRUE
      else ss.Add(s);
      s:=ptr^;
    end else s:=s+ptr^;
    inc(ptr);
  end;
end;

дальше самостоятельно разберётесь?..
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 03.08.2011, 20:31   #3
GunSmoker
Профессионал
 
Регистрация: 13.08.2009
Адрес: Россия, Тверь
Сообщений: 2,581
Репутация: 1066

icq: 436815515
skype: RandomClear
По умолчанию

Интересует именно разворот переменной окружения или нужно просто узнать путь к профилю?
__________________
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума   Ответить с цитированием
Старый 04.08.2011, 14:45   #4
Plexdeath
Пользователь
 
Регистрация: 01.07.2010
Сообщений: 20
Репутация: 10
По умолчанию

Цитата:
uses ShlObj;

function GetSpecialPath(CSIDL: word): string;
var s: string;
begin
SetLength(s, MAX_PATH);
if not SHGetSpecialFolderPath(0, PChar(s), CSIDL, true)
then s := '';
result := PChar(s);
end;
Событие на кнопку передаем название пути в переменную put
Цитата:
var
put : string;
begin
put := GetSpecialPath(CSIDL_PROFILE); // в твоем случае это //CSIDL_PROFILE
end;
Событие на кнопку передаем название пути в label

Цитата:
begin
label1.caption := GetSpecialPath(CSIDL_PROFILE); // в твоем случае это //CSIDL_PROFILE
end;
Подробная статья здесь

далее обрабатываем путь по вашему желанию

Последний раз редактировалось Plexdeath; 04.08.2011 в 14:51.
Plexdeath вне форума   Ответить с цитированием
Старый 04.08.2011, 21:09   #5
Painkiller_13
Форумчанин
 
Регистрация: 07.07.2011
Сообщений: 58
Репутация: 8
По умолчанию

Спасибо как узнавать путь я разобрался как его использовать в функии например удалении например если я хочу удалить файл 123.txt которий находиться C:\Documents and Settings\username
как мне использовать то значение которое я получил?
Painkiller_13 вне форума   Ответить с цитированием
Старый 04.08.2011, 21:11   #6
GunSmoker
Профессионал
 
Регистрация: 13.08.2009
Адрес: Россия, Тверь
Сообщений: 2,581
Репутация: 1066

icq: 436815515
skype: RandomClear
По умолчанию

Есть мнение, что к полученному значению надо пристыковать имя файла и результат передать в функцию удаления файла.
__________________
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума   Ответить с цитированием
Старый 05.08.2011, 11:32   #7
Plexdeath
Пользователь
 
Регистрация: 01.07.2010
Сообщений: 20
Репутация: 10
По умолчанию

Удаление файла используя label

Код:
Цитата:
begin
label1.Caption := GetSpecialPath(CSIDL_PROFILE);
if DeleteFile(label1.caption+'\123.txt ') then
ShowMessage('Файл успешно удален!')
else
Showmessage ('Ошибка удаления файла');
Удаления файла используя переменную

Код:
Цитата:
var
put : string;
begin
put := GetSpecialPath(CSIDL_PROFILE);
if DeleteFile(put+'\123.txt') then
ShowMessage('Файл успешно удален!')
else
Showmessage ('Ошибка удаления файла');
Plexdeath вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


13:49.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru