Difference between revisions of "unique temp file name/de"
From Free Pascal wiki
Jump to navigationJump to searchm |
m (Deleted category included in page template) |
||
(3 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{unique temp file name}} | {{unique temp file name}} | ||
− | + | ||
− | Dieser Artikel beschäftigt sich mit der Windowsprogrammierung. | + | |
− | Die Funktion generiert für temporäre Dateien einen eindeutigen Dateinamen. | + | Zurück zur Seite [[code examples/de|Code Beispiele]]. |
− | + | ||
− | <syntaxhighlight> | + | |
+ | Dieser Artikel beschäftigt sich mit der Windowsprogrammierung. | ||
+ | |||
+ | Die Funktion generiert für temporäre Dateien einen eindeutigen Dateinamen. | ||
+ | |||
+ | <syntaxhighlight lang=pascal> | ||
uses | uses | ||
SysUtils, ...; | SysUtils, ...; | ||
Line 46: | Line 51: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | ||
− | oder einfacher: | + | oder einfacher: |
− | <syntaxhighlight> | + | |
+ | <syntaxhighlight lang=pascal> | ||
uses | uses | ||
...Sysutils... | ...Sysutils... | ||
Line 56: | Line 62: | ||
end; | end; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | |||
− | |||
− | |||
− |
Latest revision as of 06:18, 2 March 2020
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;