unique temp file name/de

From Lazarus wiki
Revision as of 17:57, 5 September 2013 by Billyraybones (talk | contribs)
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
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 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)