Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.06;
Скачать: CL | DM;

Вниз

Найти temp   Найти похожие ветки 

 
*Pavel ©   (2004-05-21 11:35) [0]

Для этих целей использую функцию:
 GetEnvironmentVariable("temp")

Но у меня для Clipper совместимости в W2k "Переменные среды пользователя для Администратор" указано

переменная         значение
TEMP               C:\TEMP

Я так думаю, что это будет это работать и на W95-98, если в autoexec"e прописано SET TEMP = C:\TEMP.

Вопрос: что будет, если эта переменная явно не указана, будет ли в таком случае использоваться папка временных файлов самой Windows (C:\Windows\temp)?


 
Sandman25+1   (2004-05-21 11:39) [1]

Я думаю будет правильно анализировать результат GetEnvironmentVariable("temp") и если переменная не установлена, то использовать временный каталог Windows, который тоже можно найти программно. Только не помню, какой функцией :)


 
ламер ©   (2004-05-21 11:58) [2]

GetTempPath()


 
Anatoly Podgoretsky ©   (2004-05-21 12:19) [3]

Можно и не найти, я пару раз давал ссылку на проблемы с данной папкой, переменными среды и функцией. Вот еще раз
http://podgoretsky.com/ftp/Language/nps/ru.delphi.html#N130


 
Rem   (2004-05-21 13:15) [4]

%TEMP%


 
Anatoly Podgoretsky ©   (2004-05-21 13:40) [5]

Rem   (21.05.04 13:15) [4]
Может отсутствовать, может иметь не достоверное значение.


 
VLAD-MAL   (2004-05-21 13:54) [6]

Ну, типа:
---------


 function TForm1.NewTmpFile: String;
var tmpFileName : PAnsiChar ;
   buffer : array [0..255] of Char;

begin
 tmpFileName := buffer;
 GetTempPath(255, tmpFileName);
 GetTempFileName(buffer, "$$$", 0, buffer);
 Result := tmpFileName;
end;


 
Sandman25+1   (2004-05-21 14:03) [7]

[6] VLAD-MAL   (21.05.04 13:54)

Ни в коем случае. Result указывает на локальную переменную в стеке.


 
ламер ©   (2004-05-21 17:14) [8]

> Sandman25+1   (21.05.04 14:03) [7]
вы ошибаетесь. Result НЕ указывает на локальную переменную в стеке.


 
ламер ©   (2004-05-21 17:18) [9]

> VLAD-MAL   (21.05.04 13:54) [6]
переменная tmpFileName не нужна. можно писать просто:
GetTempPath(255, buffer);


 
VLAD-MAL   (2004-05-21 17:21) [10]

Ну, какие все внимательные... А мне вот на выходе нужен был именно tmp - файл в tmp - каталоге!


 
WebErr ©   (2004-05-21 17:25) [11]

Какие грамотные нынче пошли ламера! ... 8\


 
Sandman25+1   (2004-05-21 17:26) [12]

[8] ламер ©   (21.05.04 17:14)

Возможно, я и ошибаюсь. Тогда было бы очень полезно узнать, в чем именно.

1) tmpFileName := buffer;

tmpFileName указывает на стек

2)
GetTempPath(255, tmpFileName);

функция пишет по адресу tmpFileName. Значение переменной tmpFileName не меняется. Могут измениться buffer[0] и т.д.
3)
GetTempFileName(buffer, "$$$", 0, buffer);

функция пишет по адресу buffer (4 параметр). Значение переменной buffer не меняется. Могут измениться buffer[0] и т.д.
4)
Result := tmpFileName;

Result присваивается указатель на стек.

PS. Вы не могли бы сменить ник? Не очень приятно окажется, если мне ламер докажет, что он прав, а я нет :)


 
Anatoly Podgoretsky ©   (2004-05-21 17:30) [13]

Sandman25+1   (21.05.04 17:26) [12]

Ошибаешься S := P приводит к копированию данных.
Придется тебе смириться, это он прикалывается над ветками об ламерах :-)


 
Sandman25+1   (2004-05-21 17:33) [14]

[13] Anatoly Podgoretsky ©   (21.05.04 17:30)

Можно разжевать для непонятливых насчет S и P?
У меня с чувством юмора не очень сегодня.


 
Anatoly Podgoretsky ©   (2004-05-21 17:33) [15]

Но у него не пройдет, ламер это не имя а вил жизни


 
Anatoly Podgoretsky ©   (2004-05-21 17:34) [16]

Sandman25+1   (21.05.04 17:33) [14]
Присвоение PChar (tmpFileName) переменнной типа string (Result)


 
Sandman25+1   (2004-05-21 17:39) [17]

[16] Anatoly Podgoretsky ©   (21.05.04 17:34)

М-да. Чего-то я прочитал, что функция возвращает PChar :(
Вы и ламер(с) правы


 
Anatoly Podgoretsky ©   (2004-05-21 17:40) [18]

Это ничего, что я три н подряд написал?


 
VLAD-MAL   (2004-05-21 17:42) [19]

Интересно, а как нужно, если как у меня - не работает (оказывается! - хотя не жаловался раньше...)?


 
Sandman25+1   (2004-05-21 17:45) [20]

[18] Anatoly Podgoretsky ©   (21.05.04 17:40)

А я и не заметил. Все, надо отдохнуть, завтра на работу из принципа не пойду :)
Ладно, прекращаю флудить.


 
VLAD-MAL   (2004-05-21 17:49) [21]

Завтра - суббота. Спать до обеда. А послезавтра - на рыбалку. Если погода.



Страницы: 1 вся ветка

Текущий архив: 2004.06.06;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.024 c
3-1084782386
Goida
2004-05-17 12:26
2004.06.06
Где компоненты для работы с Sybase?


1-1085496946
init13
2004-05-25 18:55
2004.06.06
StringGrid


14-1084878126
Карелин Артем
2004-05-18 15:02
2004.06.06
Только крутым программерам!


14-1084925158
Serzh ml
2004-05-19 04:05
2004.06.06
(win XP) vs (win NT+9x)


1-1085166307
Lena19
2004-05-21 23:05
2004.06.06
как узнать размер буквы в пикселях не помещая ее на канву