DirectoryExists('~') под линуксом - ошибка

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Сообщение yozh » 03.04.2006 12:02:57

Почему? Как ещё я должен определять home-каталог текущего юзера?
yozh
новенький
 
Сообщения: 25
Зарегистрирован: 01.04.2006 16:17:05

Сообщение yozh » 03.04.2006 14:12:55

Сочинил чудовищный способ, который, однако, работает...
Код: Выделить всё
uses ...,Process;
...
var
 ...
 HProc:TProcess;
 HLines:TStringList;
 i:integer;
 UserDir:string;
begin
 ...
 HProc:=TProcess.Create(nil);
 HLines:=TStringList.Create;
 HProc.CommandLine:='bash -c set';
 HProc.Options:=HProc.Options+[poUsePipes,poWaitOnExit];
 HProc.Execute;
 HLines.LoadFromStream(HProc.Output);
 for i:=0 to HLines.Count-1 do
   if (Pos('HOME=',HLines.Strings[i])=1) then
     UserDir:=Copy(HLines.Strings[i],Pos('HOME=',HLines.Strings[i])+Length('HOME='),Length(HLines.Strings[i]));
 HLines.Free;
 HProc.Free;
 ...
end;
yozh
новенький
 
Сообщения: 25
Зарегистрирован: 01.04.2006 16:17:05

Сообщение Sergei I. Gorelkin » 04.04.2006 12:49:26

Этот способ ведь читает переменные окружения...
А их можно читать и проще:

Код: Выделить всё
// специфично для FreePascal с использованием класса TCustomApplication
s := Application.EnvironmentVariable['HOME'];

или же
Код: Выделить всё
// вроде бы работает и в Delphi и во FreePascal
s := GetEnvironmentVariable('HOME');
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1397
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение yozh » 04.04.2006 14:40:18

OK, спасибо. Я до этого юзал Delphi 5 (делает маленькие exeшники - гораздо компактнее, чем 6), а там этого ещё не было.
yozh
новенький
 
Сообщения: 25
Зарегистрирован: 01.04.2006 16:17:05

Сообщение Alexander » 05.04.2006 23:21:34

И не будет. Делфи ж в Вин. Там всё по другому (как, я уже и не интересовался, наверное есть АПИ).

А такой фокус будет (на предмет чтения окружения) работать будет в ДОСе, Вин и даже в Линуксе !

uses Dos;

begin

WriteLn(getenv('HOME'));

end.
Аватара пользователя
Alexander
энтузиаст
 
Сообщения: 703
Зарегистрирован: 18.12.2005 19:10:00
Откуда: оттуда


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 92

Рейтинг@Mail.ru
cron