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

From Free Pascal wiki
Jump to navigationJump to search
(Created page with "{{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....")
 
(Perhaps it pays to investigate the RTL a bit more to see if functions are already present.)
Line 45: Line 45:
 
   ...
 
   ...
 
    
 
    
 +
</syntaxhighlight>
 +
<br>
 +
oder einfacher:<br>
 +
<syntaxhiglight>
 +
uses
 +
...Sysutils...
 +
function TempFileName(strPrefix: String): string;
 +
begin
 +
  result:=SysUtils.GetTempFileName('',strPrefix);
 +
end;
 
</syntaxhighlight>
 
</syntaxhighlight>
 
<br>
 
<br>

Revision as of 09:17, 23 May 2013

Windows logo - 2012.svg

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 den 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:
<syntaxhiglight> uses ...Sysutils... function TempFileName(strPrefix: String): string; begin

 result:=SysUtils.GetTempFileName(,strPrefix);

end; </syntaxhighlight>

--Olaf 04:51, 23 May 2013 (UTC)