Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.06.06;
Скачать: [xml.tar.bz2];

Вниз

Найти 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.032 c
14-1085123667
Layner
2004-05-21 11:14
2004.06.06
Статика на машине (2106), у кого то есть такое же?


1-1085364117
Jedu
2004-05-24 06:01
2004.06.06
Скроллинг на главной форме...


3-1084792312
Емахо!
2004-05-17 15:11
2004.06.06
DataSet.Filter как присвоить строку фильтра?


14-1084289821
Soft
2004-05-11 19:37
2004.06.06
Искусственный интеллект: философские вопросы реализации?


4-1083346254
Yus
2004-04-30 21:30
2004.06.06
Атрибуты чужего окна





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский