Difference between revisions of "unique temp file name/de"
From Free Pascal wiki
Jump to navigationJump to searchm |
m |
||
Line 27: | Line 27: | ||
GetMem(pchTempDir,wrdTempDirSize); | GetMem(pchTempDir,wrdTempDirSize); | ||
− | // kürzt | + | // kürzt das Prefix auf die zulässigen 3 Stellen |
StrPCopy(pchPrefix,Copy(strPrefix,0,3)); | StrPCopy(pchPrefix,Copy(strPrefix,0,3)); | ||
// kopiert den Inhalt der Umgebungsvariable in ein PChar | // kopiert den Inhalt der Umgebungsvariable in ein PChar |
Revision as of 17:57, 5 September 2013
Dieser Artikel behandelt ausschließlich Windows.
Siehe auch: Multiplatform Programming Guide/de
│
Deutsch (de) │
Dieser Artikel beschäftigt sich mit der Windowsprogrammierung.
Die Funktion generiert für temporäre Dateien einen eindeutigen Dateinamen.
uses
SysUtils, ...;
...
function TempFileName(strPrefix: String): string;
var
pchBuffer: PChar;
pchTempDir: PChar;
pchPrefix: PChar;
const
wrdTempDirSize = 255;
wrdBufferSize = 255;
wrdPrefixSize = 3;
begin
// Speicher anfordern
GetMem(pchBuffer, wrdBufferSize);
GetMem(pchPrefix,wrdPrefixSize);
GetMem(pchTempDir,wrdTempDirSize);
// kürzt das Prefix auf die zulässigen 3 Stellen
StrPCopy(pchPrefix,Copy(strPrefix,0,3));
// kopiert den Inhalt der Umgebungsvariable in ein PChar
StrPCopy(pchTempDir,GetEnvironmentVariable('Temp'));
if GetTempFileName(pchTempDir, pchPrefix, 0, pchBuffer) > 0 then
Result := StrPas(pchBuffer)
else
Result := '';
// Speicher freigeben
FreeMem(pchBuffer, wrdBufferSize);
FreeMem(pchPrefix, wrdPrefixSize);
FreeMem(pchTempDir, wrdTempDirSize);
end;
...
oder einfacher:
uses
...Sysutils...
function TempFileName(strPrefix: String): string;
begin
result:=SysUtils.GetTempFileName('',strPrefix);
end;
--Olaf 04:51, 23 May 2013 (UTC)