Difference between revisions of "unique temp file name/de"

From Lazarus wiki
Jump to navigationJump to search
m
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}}
<br>
+
 
Dieser Artikel beschäftigt sich mit der Windowsprogrammierung.<br>
+
 
Die Funktion generiert für temporäre Dateien einen eindeutigen Dateinamen.<br>
+
Zurück zur Seite [[code examples/de|Code Beispiele]].
<br>
+
 
<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>
<br>
+
 
oder einfacher:<br>
+
oder einfacher:
<syntaxhighlight>
+
 
 +
<syntaxhighlight lang=pascal>
 
uses
 
uses
 
...Sysutils...
 
...Sysutils...
Line 56: Line 62:
 
end;
 
end;
 
</syntaxhighlight>
 
</syntaxhighlight>
<br>
 
<br>
 
--[[User:Olaf|Olaf]] 04:51, 23 May 2013 (UTC)
 
[[Category:Code Parts/de]]{{AutoCategory}}
 

Latest revision as of 05:18, 2 March 2020

Windows logo - 2012.svg

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;