![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Переменные окружения XP [D7, WinXP]
Fantasy © (2008-01-04 05:03:00)Подскажите может кто знает есть ли функции по работе с переменными окружения;
Добавить Глобальную переменую, удалить, изменить(SetEnvironmentVariable, GetEnvironmentVariable эти функции я знаю мне нужно другое).
Вот переменная PATH там пути разделены ";" есть ли готовая билиотека с функциями которая добавит или удалит путь или всетаки придется свой алгоритм писать выдиления строк по ";" поиска и замены ?
Fantasy (2008-01-05 07:41:00) [1]Спасибо всем кто помог
С новым годом 2008 ТОВАРИЩИ!
Anatoly Podgoretsky (2008-01-04 16:47:00) [2]StringReplace или переход на 2006, там есть новое свойство
{RASkov} (2008-01-04 15:48:00) [3]> [4] Fantasy (04.01.08 15:33)
uses RxStrUtils;
procedure GetEnvirList(const SEnvir: String; Lst: TStrings);
var N, WCnt: Integer;
begin
if not Assigned(Lst) then Exit;
Lst.Clear;
WCnt:=WordCount(SEnvir, [';']);
if WCnt=0 then Exit;
for N:=1 to WCnt do Lst.Add(ExtractWord(N, SEnvir, [';']));
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
GetEnvirList(GetEnvironmentVariable('PATH'), Memo1.Lines);
end;
Только, как видно, нужна RxLib т.е. ее модуль RxStrUtils;
Можно и без нее, но кода будет немного больше)
Fantasy (2008-01-04 15:33:00) [4]
> {RASkov} © (04.01.08 15:01) [3]
C:\Program
Files\Borland\Delphi7\Bin
C:\Program
Files\Borland\Delphi7\Projects\Bpl\
C:\WINDOWS\system32
C:\WINDOWS
C:\WINDOWS\System32\Wbem
C:\Program
Files\Common
Files\Adobe\AGL
Пробелы тоже штает за новую переменую :(
{RASkov} (2008-01-04 15:01:00) [5]
var S: String;
begin
S:=GetEnvironmentVariable('PATH');
Memo1.Lines.Delimiter:=';';
Memo1.Lines.DelimitedText:=S;
showmessage(Memo1.Lines.DelimitedText);
end;
Fantasy (2008-01-04 09:47:00) [6]procedure TForm1.Button1Click(Sender: TObject);
var
p : pChar;
begin
Memo1.Lines.Clear;
Memo1.WordWrap := false;
{$IFDEF WIN32}
p := GetEnvironmentStrings;
{$ELSE}
p := GetDOSEnvironment;
{$ENDIF}
while p^ <> #0 do begin
Memo1.Lines.Add(StrPas(p));
inc(p, lStrLen(p) + 1);
end;
{$IFDEF WIN32}
FreeEnvironmentStrings(p);
{$ENDIF}
end;
понятно но КАК ВНЕСТИ ИЗМИНЕНИЯ В PACH там пути разделены точкой заяпятой. Нужно писать свой алгоритм или есть стандартная функция, пример, библиотека. Я в инете ненашол :(
Cj (2008-01-04 09:15:00) [7]Get/Set EnviromentVariable
вроде так,непомню