Главная страница
    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]

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


 
Pa5ha   (2004-03-06 18:26) [41]


> Вам уже ответили, но руского языка Вы, видимо, не знаете.

Всем лишь бы реплику вставить... - моя фраза подтвердилась. Я сначала написал без МАКА, но было непонятно, что к нему относится. Дописал а "него" не удалил. Вот придраться то надо... А РУССКИЙ язык, кстати, пишется с двумя С.


 
TButton ©   (2004-03-06 18:28) [42]

имхо мак не пк, а скорее девайс.


 
Pa5ha   (2004-03-06 18:37) [43]

Будем считать, что panov на вопрос ответил. Спасибо ему. Теперь про МАК. Кому чем угодно, тот тем МАК пусть и считает. Но факт в том, что их ПК сразу были 32 бита, небыло ограничения, как у ИБМ, с памятью (640 кб, причем только 64 кода), там нет реестра и как следствие гимора с ним, установка ОСИ производится путем копирования двух файлов, что очень быстро, и вообще если бы в свое время мелкософт не дал кому то что то на лапу, то мы сейчас с вами сидели бы и радовались жизни. Посмотрите на современные МАКИ - произведения искусства.


 
Алхимик ©   (2004-03-06 18:40) [44]


> [43] Pa5ha   (06.03.04 18:37)

Реестр вы очевидно считаете безусловным злом?


 
Pa5ha   (2004-03-06 18:47) [45]

Реестр со временем разрастается, что приводит к увеличению поиска в нем и вообще в нем постоянно создаются новые ключи и тому подобное, которые не удаляются. Нет четкого контроля. Да и вообще с удобствами MicroSoft(R) пересторался. В Windoze наворотов много, а пользы не от всех много, да и лезет он постоянно куда не надо. Файло везде создает типа thumbs.db Desktop.ini, как будто я без него жить не могу.


 
Алхимик ©   (2004-03-06 18:53) [46]

thumbs.db это вирус создает насколько я знаю.


 
Sphinx ©   (2004-03-06 18:56) [47]

> thumbs.db Desktop.ini

Поставьте себе Linux и не хайте по напрасну ХР. Она между прочим для Вас же старается, чтобы Вы могли в любой момент посматреть превью Вашей картинки (фильма и т.д.). Linux так не делает (поверьте знаю) и превью гораздо дольше создаются. Реестр тоже зря обхаяли удобная вещь (если за ней следить). Что бы он просто так не разрастался есть много чего хорошего Norton WinDoctor ReCleaner и др.

Вот такие люди меня поражают, прислали мне один разх спам письмо, мол не пользуйтесь Вы Винями а пользуйтесь свободным ПО. И реклама Линукса (Красной шапочки вроде, плохо помню) на пару листов. А прислано было средствами OutLook Express ;)

И вообще порабы в ПОТРЕПАТЬСЯ с этой веткой ;о


 
Sphinx ©   (2004-03-06 18:59) [48]

> Алхимик ©   (06.03.04 18:53) [46]

> thumbs.db это вирус

Смешно не спорю ;)


 
Zacho ©   (2004-03-06 19:01) [49]

Меня всегда удивляло: почему такие примитивные вопросы создают такие большие ветки ?
Как всегда, правильный ответ был дан в начале ветки, а потом началось..


 
Pa5ha   (2004-03-06 19:02) [50]

И вообще порабы в ПОТРЕПАТЬСЯ с этой веткой - да, с этой веткой пора покончить. А конечно уважаю ХР за то, что старается, но после того, как я начал работат с видео через дельфи мой эксплорер стал падать после каждого превью, да и без всяких превью мне не плохо живется. Я знаю какие фильмы у меня где лежат, да и по первому черному кадру название фильма сложно определить.


 
Zacho ©   (2004-03-06 19:29) [51]


> Pa5ha   (06.03.04 19:02) [50]

А какое отношение имеют фильмы к Дельфи, Дельфи к эксплореру, а все это к теме ветки ?
:-)


 
Pa5ha   (2004-03-06 19:37) [52]

Удалено модератором


 
Pa5ha   (2004-03-06 19:39) [53]

Черт, не туда нажал. Итак, продолжим.

> Дельфи к эксплореру

Из за моих фильмов, которые эксплорер в превью пытался открыть, он падал, как дурак.


 
Алхимик ©   (2004-03-06 19:42) [54]

У эксплоера высокий художественный вкус, от боевиков ему становится дурно. :)


 
Zacho ©   (2004-03-06 20:01) [55]

Насчет падания.. Про эксплорер, правда не скажу - но медиплеер и некоторые други плееры действительно падают, если расширение файла не соответствует содержимому, например в *.VOB засунут mpeg4. Или матрешка в файле с раcширением .AVI . Или просто структура файла порушена.
А все равно все это никакого отношения к Дельфи не имеет.

2 Moderators: может правда пора эту ветку в "Потрепаться" ?


 
Pa5ha   (2004-03-06 20:05) [56]


> 2 Moderators: может правда пора эту ветку в "Потрепаться"
> ?

Её надо ваще нахрен снести.

> А все равно все это никакого отношения к Дельфи не имеет.

Как отношения не имеет? Очень даже имеет. Я свои АВИ можно сказать прямо в дельфе делал.


 
Zacho ©   (2004-03-06 20:10) [57]


> Как отношения не имеет? Очень даже имеет. Я свои АВИ можно
> сказать прямо в дельфе делал

Так это имеет отношение не к Дельфи, а только к кривизне твоих рук. :)
Заранее извиняюсь за неприятную правду и прошу не обижаться :)


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

Я не обижаюсь, а просто модуль переписывал с 24 бит а 32.


 
Zacho ©   (2004-03-06 20:24) [59]


> с 24 бит а 32.

Такое впечатление, что это не веб-форум, а фидо :) Буковка "н" глючит :)
P.S.: Не обращайте на меня внимания, че-то настроение слишком веселое стало :) , если комп сейчас не вырублю, то еще и не такую глупость запостить могу :)


 
Pa5ha   (2004-03-06 20:30) [60]


> Буковка "н" глючит :)

Точо глючит.


 
Sphinx ©   (2004-03-06 21:02) [61]

До трепались???


 
Pa5ha   (2004-03-06 21:56) [62]

А я все узнал. А чё, хорошо поговорили.


 
Zacho ©   (2004-03-06 22:13) [63]

2 Sphinx © :
И до трепались, и после потрепимся :)



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

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

Наверх





Память: 0.61 MB
Время: 0.034 c
1-1079689062
bjohny
2004-03-19 12:37
2004.04.04
Компилятор


6-1075123870
Denis_
2004-01-26 16:31
2004.04.04
Сокеты


14-1078487666
KSergey
2004-03-05 14:54
2004.04.04
Про переделку SB Live в SB Audigi


1-1079074966
Yuri Btr
2004-03-12 10:02
2004.04.04
Область видимости свойств класса


1-1079530604
Аноним
2004-03-17 16:36
2004.04.04
DrawGrid





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