Difference between revisions of "unique temp file name/de"
From Lazarus wiki
Jump to navigationJump to searchm |
|||
Line 61: | Line 61: | ||
<br> | <br> | ||
--[[User:Olaf|Olaf]] 04:51, 23 May 2013 (UTC) | --[[User:Olaf|Olaf]] 04:51, 23 May 2013 (UTC) | ||
− | [[Category:Code | + | |
+ | |||
+ | {{AutoCategory}} | ||
+ | [[Category:Code Snippets/de]] |
Revision as of 23:49, 29 October 2015
Dieser Artikel behandelt ausschließlich Windows.
Siehe auch: Multiplatform Programming Guide/de
│
Deutsch (de) │
Zurück zur Seite Code Beispiele.
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)