Форум » [x]Harbour » Временный файл с уникальным именем ? » Ответить

Временный файл с уникальным именем ?

Andrey: Ищу функцию GetTempFileNameA в Харборе. https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-gettempfilenamea Есть такая или нет ? Давным давно в Клипере была такая функция.... P.S. Нашёл в Harbour\lib\hbrtl.lib - а параметр не знаю nUnique.... // GetTempFileName(cPath,cPrefix,nUnique) -> cFileName

Ответов - 5

Andrey: Не пашет... Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland demo.c: Turbo Incremental Link 5.66 Copyright (c) 1997-2002 Borland Error: Unresolved external '_HB_FUN_GETTEMPFILENAME' referenced from W:\HB_PROJECT\TSB_LINEDRAG\DEMO.OBJ Link error.

PSP: Andrey пишет: P.S. Нашёл в Harbour\lib\hbrtl.lib - а параметр не знаю nUnique.... // GetTempFileName(cPath,cPrefix,nUnique) -> cFileName В исходниках я такую не нашел. Откуда ты это взял?

Andrey: Нашел клиперную функцию TEMPFILE( GetStartUpFolder()+"\", "cdx", 0), вроде пашет.


Andrey: PSP пишет: В исходниках я такую не нашел. Откуда ты это взял? Брал в папке с МиниГуи, там есть в папке Harbour\lib\hbrtl.lib

taras56: Function TmpName() // генерировать имя для временного файла Return "TMP"+Ltrim(str(random())) //- Function random(ld) Local x:=rand(),nSet:=SET(_SET_DECIMALS,16) //------------------------------------------ if ld=nil ; ld:=.f. ; endif // по умолчанию x := Int( x * (65535 + 1) ) if ld ; x := x - 32768 ; endif SET(_SET_DECIMALS,nSet) Return x //- Function rand( s ) Static seed := 0 Local nSet:=SET(_SET_DECIMALS,16) local a := 16807 // This is just a lucky prime number // you can hardcode these as constants for better speed local m := ( 2 ^ 31 ) - 1 local q := int( m / a ) local r := int( m % a ) //-------------------------- if valtype( s ) == 'N' seed := s Else if seed = 0 ; Seed:=Seconds() ; endif endif seed := a * ( seed % q ) - r * ( seed / q ) IF seed <= 0 ; seed += m ; endif SET(_SET_DECIMALS,nSet) Return ( seed - 1 ) / ( m - 2 ) /* Other Prime Numbers are: 38833 ,37171 ,11903,18233 ,31337 ,23339,27481,31063 34543 // an anagram prime! 36299,13691 ,17659 ,29411 */



полная версия страницы