Sign in Join
Wiki copytemporary

Revision 1 of 1, by Trev on 3-2-2020. The page as it is now.

unique temp file name/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.

pascal
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:

pascal
uses
...Sysutils...
function TempFileName(strPrefix: String): string;
begin
  result:=SysUtils.GetTempFileName('',strPrefix);
end;

From the Free Pascal wiki, page "unique temp file name/de", as it stood on 2020-03-02 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.