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

Вниз

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

 
Pa5ha   (2004-03-01 20:48) [0]

Как можно получить в программе строку, которая ссылается на оную (темповую) папку? И надо есесьно так, чтоб на других машинах был соответствующий адрес папки (темповой).


 
Gero ©   (2004-03-01 21:19) [1]

Никода не видел строку, которая ссылается на папку.


 
Pa5ha   (2004-03-01 21:27) [2]

В строку можно записать адрес папки. Вот так: "c:\temp". Мне нужно получить адрес темповой папки, в которую можно скинуть файло, а потом достать.


 
jack128 ©   (2004-03-01 21:31) [3]

GetTempPath


 
Pa5ha   (2004-03-01 21:47) [4]

А как это вообще юзается?


 
TButton ©   (2004-03-01 21:49) [5]

s:=GetTempPath;


 
Gero ©   (2004-03-01 22:01) [6]

А как это вообще юзается?

С помощью F1.


 
Pa5ha   (2004-03-03 23:33) [7]

Для особо умных:
"func Windoze.GetTempPath: function(nBufferLength: Cardinal; lpBuffer: pAnsiChar): Cardinal - Windoze.pas (28979)".
Как это можно присвоить стрингу? И какие параметры вписать?
И ещё: в моем хелпе этого нету, а в вашем?

The most hated system is Windoze! : )


 
Zacho ©   (2004-03-03 23:41) [8]

В нашем - есть :)

DWORD GetTempPath(

   DWORD nBufferLength, // size, in characters, of the buffer
   LPTSTR lpBuffer  // address of buffer for temp. path
  );
Parameters

nBufferLength

Specifies the size, in characters, of the string buffer identified by lpBuffer.

lpBuffer

Points to a string buffer that receives the null-terminated string specifying the temporary file path.

Return Values

If the function succeeds, the return value is the length, in characters, of the string copied to lpBuffer, not including the terminating null character. If the return value is greater than nBufferLength, the return value is the size of the buffer required to hold the path.
If the function fails, the return value is zero.


 
Alexander666 ©   (2004-03-04 04:18) [9]

Отчего следует:


function GetTmpPath: string;
var
 buf: array [0..255] of Char;
begin
 GetTempPath(SizeOf(buf), buf);
 Result := buf;
end;


 
Anatoly Podgoretsky ©   (2004-03-04 08:54) [10]

Pa5ha   (03.03.04 23:33) [7]
Так как результат функции Cardinal, то есть не строка, то сначала надо преобразовать число в строку, с помощью Int64ToStr или IntToHex


 
IceBeerg ©   (2004-03-04 10:02) [11]

> Anatoly Podgoretsky ©   (04.03.04 08:54) [10]
Не, это вы круто, пусть парень Cardinal результат в строку конвертит и юзает его как "ссылку" на папку.
8-0


 
Sphinx ©   (2004-03-04 10:07) [12]

Мне вот интересно, почему Мастера в упор не замечают системных переменных Винды???
Есть же стандартная системная переменная %TEMP% и если присвоить s:="%TEMP%"; то получим, что s ссылается на темповую папку, в лубой ОС этот трюк работает и в 9х, и в NT-шках!!!
Еще одна такая же переменная %TMP%, причем в 2k и XP за этими переменными стоит путь до папки C:\Document and Setting\<user>\Local Setting\Temp, а в 9х C:\Windows\Temp
или как кто папку C:\Windows называет?


 
Pa5ha   (2004-03-04 17:56) [13]

Sphinx Ты молодец! Я наконец получил ответ на свой вопрос. А то одни ламерки меня окружают. Я просто не знал как заюзать системные переменные и сразу от них отказался...


 
Pa5ha   (2004-03-04 18:20) [14]

Что-то теперь не работает. Как сделать чтоб работало, а то пишет что Illegal character ($25).


 
Gero ©   (2004-03-04 18:25) [15]

> А то одни ламерки меня окружают

Не знаю, кто Вас окружает, но Вы от них не сильно отстали.


 
Pa5ha   (2004-03-04 18:34) [16]


> Не знаю, кто Вас окружает, но Вы от них не сильно отстали.

Блин, не знаю как юзать системные переменные. И Вы Gero тоже видно не в курсе. А обсуждению до потрепаться уже не долго осталось.


 
Sphinx ©   (2004-03-04 18:42) [17]

> Illegal character ($25).

Если не ошибаюсь, а это возможно т.к. пишу на память, это может возникнуть когда пытаешься совместить String и PChar.

> ламерки меня окружают

Вряд ли :) просто когда увлекаешься программированием и оно становится твоим стилем жизни, забываешь некоторые вещи которые как-будто для новичков.
Мастерам проше вызвать GetTempPath чем использовать %TEMP% результат один, а подходы разные. Первый проще с точки зрения читаемости кода, а второй - когда учишься (хотя для меня они практически вавнозначны), но это уже субъективное мнение. С ним могут не согласиться и это возможно будет даже правильно.


 
Pa5ha   (2004-03-04 18:50) [18]


> ламерки меня окружают

Это уж я так, в шутку.
> GetTempPath

А на счет удобочитаемости не согласен: появляется много переменных типа буфера и все такое.

> Если не ошибаюсь

Ну, вообще ошибаешся т.к. не работает все равно.


 
Gero ©   (2004-03-04 18:57) [19]

> не знаю как юзать системные переменные. И Вы Gero тоже видно не в курсе

Не буду Вас разубеждать. И действительно, как же их юзать? :)


 
Pa5ha   (2004-03-04 19:13) [20]

Сейчас нам кто-нибудь об этом поведает...


 
Sphinx ©   (2004-03-04 19:18) [21]

> не работает все равно

Это уже в Ваша ошибка переменная работает только что проверил.


 
Pa5ha   (2004-03-04 19:20) [22]

Я делаю так:
s:string;
s:=%TMP%;
Просто может где ещё надо обозначить, что эту переменную можно юзать?


 
YuRock ©   (2004-03-04 19:28) [23]

Не советовал бы пользоваться переменными вроде "%TMP%", тек как:

1. Их можно переименовать;
2. Их может вообще не быть.


 
Sphinx ©   (2004-03-04 19:43) [24]

> s:=%TMP%;

Хе хе s:="%TEMP%" (кавычки не забывайте); присваиваете переменной s значение %TEMP%.
Далее MyFile:=s+"\myfile.txr";

> 1. Их можно переименовать;
Можно, но это можете сделать Вы, и не сможет и не захочет 99% пользователей (90% из них про них даже не знают). Да и зачем переименовыват???

> 2. Их может вообще не быть.
См. выше.-это раз, Они будут - это два. Переменные типа %SYSTEMROOT% и %USERPROFILE% и т.д. вообще явно не определяются, поэтому их крайне сложно удалить.
Что до %TEMP% - под NT да их легко найти и удалить, но к примеру ХР мне не дала этого сделать (специально попробовал). Правда права "опытный пользователь" а не "администратор". Так для самоуспокоения, под Админом не пробовал.


 
Pa5ha   (2004-03-04 19:50) [25]

Спасибо ещё раз. Вот такие имбицильные ашипки, хоть и редко, но бывают. Про кавычки сафсем забыл.

The most hated system is Windoze...


 
panov ©   (2004-03-04 19:57) [26]

function GetParmEnv(const aParm: String): String;
var
 LenBuf: Integer;
begin
 LenBuf := 4096;
 SetLength(Result,4096);
 LenBuf := GetEnvironmentVariable(PChar(aParm),@Result[1],LenBuf);
 SetLength(Result,LenBuf);
end;


 
panov ©   (2004-03-04 19:59) [27]

>Sphinx ©   (04.03.04 19:43) [24]

s := "%TEMP%";

В результает получим в s "%TEMP%".


 
Sphinx ©   (2004-03-04 20:05) [28]

> panov ©   (04.03.04 19:59) [27]

Хм...дело в том, что у меня срабатывает именно при присвоении s:="%TEMP%"

выполните следующий код (я упрошу чуток?):
s:="%TEMP%";
ShellExecut (open, s);
откроется временная папка Вини.

Проверял я очень просто: если в строке Еxplorera ввести %TEMP% - попадем в Темп, значит для открытия этой папки надо в переменную внести значение %TEMP% а это как раз с кавычками.

Спорить не буду, но факт в том что без кавычек не работает.


 
panov ©   (2004-03-04 20:19) [29]

>Sphinx ©   (04.03.04 20:05) [28]

Так вопрос ведь не в том, чтобы этото каталог открыть, а чтобы получить его в строку.


 
Gero ©   (2004-03-04 20:48) [30]

> Спорить не буду, но факт в том что без кавычек не работает

Ну естественно, это ведь строка!

> panov ©   (04.03.04 20:19) [29]
[3]. Точный и лаконичный ответ.


 
Pa5ha   (2004-03-05 14:53) [31]

А такая фишка %TMP% некоторыми функциями не поддерживается. Например Openfile или Createfile или Deletefile, а мне для них какраз и надо. Так, к слову...


 
Anatoly Podgoretsky ©   (2004-03-05 15:09) [32]

Так ты хочешь программно удалять файлы во временной папке? тогда прочитай следующую статью, чтобы был готов к ужасным последствиям.
http://podgoretsky.com/ftp/Language/nps/ru.delphi.html#N130


 
Eagle-XK ©   (2004-03-05 15:16) [33]

%TEMP%: фокус.
Вы не получите строку с размещением папки Темпа.
Факт: почему в Эксплорере получите папку Темпа: потому, что в списке переменных среды указано, что переменная TEMP имеет параметр (...), и открыта будет папка, указанная в параметре. Теперь попробуйте протрассить ваш код в Делфе через F8, вы увидите, что переменной s присвоен параметр... да, да - "%TEMP%"!!!


 
Erik ©   (2004-03-05 15:53) [34]

Убожество, зачем тратить время? Нехочеш трамвай иди пешком!


 
Pa5ha   (2004-03-05 21:04) [35]


> Anatoly Podgoretsky

Я хочу удалять файлы, созданные мной.
> Eagle-XK

Не дурак, знаю, что в кавычках строка.


 
Alexander666 ©   (2004-03-06 05:24) [36]


> Pa5ha   (05.03.04 21:04) [35]

Попрошу прошения, но за ламерков все-таки обидно. Потом, вам бы научиться как вопросы задавать, а то судя по самым первым постам, там черти что было. И потом, "The most hated system is Windoze" - вот этого не надо. Коли он вам не нравится, работайте на Линуксе или на OS/2, или пишите свою систему. Ну и что касается удаления файлов, то вам легче использовать будет все-таки GetTempPath. А если вы не дурак, то давно бы с этим сами разобрались.


 
Anatoly Podgoretsky ©   (2004-03-06 11:46) [37]

Красиво как, вроде прямо дураком и не назвал, но все таки.


 
Sphinx ©   (2004-03-06 15:49) [38]

Отдельно тему поднимать не хочу. Но интересно откуда у Мастеров такая нелюбовь к системным переменным (уже не по первому топику вижу)??? Зачем тогда эти переменные система на публику выставляет. Тотже %TEMP%, or %SYSTEMROOT%, or %USERPROFILE%???


 
Pa5ha   (2004-03-06 15:58) [39]


> Попрошу прошения, но за ламерков все-таки обидно.

Ну сказал же что пошутил и больше не буду.
> Коли он вам не нравится, работайте на Линуксе или на OS/2,
> или пишите свою систему.
Мне в целом не нравится архитектура IBM - архитектурная помойка, а что мне остаётся делать? Моя архитектура будет не конкурентоспособна. Да и большинство продуктов ориентированно на старую. Именно по этой причине IBM в свое время не перешел на новую архитектуру. А макинтош в этом отношении выглядит очень заманчиво, но все к сожалению для мелкософта. А у МАКА него были большие перспективы.

Из всего я понял, что самому действительно проще разобраться, чем ждать готового ответа от кого нибудь умного. Всем лишь бы реплику вставить...


 
Fay ©   (2004-03-06 18:15) [40]

Вам уже ответили, но руского языка Вы, видимо, не знаете.
Фраза "А у МАКА него были большие перспективы" - лишнее тому подтверждение. Успехов.



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

Форум: "Потрепаться";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.54 MB
Время: 0.071 c
3-1078215389
denmin
2004-03-02 11:16
2004.04.04
Проблема с ADOTable


1-1079354777
Layner
2004-03-15 15:46
2004.04.04
Как закрасить фон MDI прил из мод. окна?


1-1079527534
Inimeg
2004-03-17 15:45
2004.04.04
EIBInterBaseError - что это такое


4-1075092831
sad
2004-01-26 07:53
2004.04.04
Работа с Combobox в WinApi


1-1079359013
лопух5345
2004-03-15 16:56
2004.04.04
Почему не закрывается форма?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский