générateur de noms de fichier unique [Delphi] - Delphi/Pascal - Programmation
Marsh Posté le 29-05-2002 à 23:06:55
Beh tu le fais toi même....
tu essayes 'monfichier.000'
tu fais un FileExist('monfichier.000' s'il existe tu incrémentes l'extention ('monfichier.001' et tu recommences ....
Marsh Posté le 29-05-2002 à 23:07:06
GetTempFileName
Ok c'est une API pour dans le répertoire temporaire mais t'as pas été très précis non plus
Marsh Posté le 29-05-2002 à 23:07:58
9s d'écart ehe
Marsh Posté le 29-05-2002 à 23:08:34
[SDF]Poire a écrit a écrit : Beh tu le fais toi même.... tu essayes 'monfichier.000' tu fais un FileExist('monfichier.000' s'il existe tu incrémentes l'extention ('monfichier.001' et tu recommences .... |
Ouai et si tu as 15.000 fichiers déjà présent, tu pleures
Fous la date/heure/secondes dans le nom du fichier à la limite, t'as peu de chance de te faire avoir
Marsh Posté le 29-05-2002 à 23:08:52
[SDF]Poire a écrit a écrit : 9s d'écart ehe |
Le temps de retrouver le nom de la fonction
Marsh Posté le 29-05-2002 à 23:09:39
UINT GetTempFileName(
LPCTSTR lpPathName, // address of directory name for temporary file
LPCTSTR lpPrefixString, // address of filename prefix
UINT uUnique, // number used to create temporary filename
LPTSTR lpTempFileName // address of buffer that receives the new filename
);
on peut spécifier le répertoire, non ?
Marsh Posté le 29-05-2002 à 23:10:36
Je connaissais la fonction en C mais G T pas sur de l'API et flemme de chercher..... (En + ça aurait été trop long )
Le truc D chiffres C juste une id y a d'aut moyens....
Marsh Posté le 29-05-2002 à 23:22:19
antp a écrit a écrit : UINT GetTempFileName( LPCTSTR lpPathName, // address of directory name for temporary file LPCTSTR lpPrefixString, // address of filename prefix UINT uUnique, // number used to create temporary filename LPTSTR lpTempFileName // address of buffer that receives the new filename ); on peut spécifier le répertoire, non ? |
Ah ouai tiens
Bon benh alors, le problème est réglé
Marsh Posté le 30-05-2002 à 13:48:25
Oki, merci......
Mais l'aide API de windows semble erronée......
l'argument driveletter semble être en fait le préfixe !!!??
Qq'un a t'il un exemple ?
Marsh Posté le 30-05-2002 à 14:00:29
qu'est-ce que tu appelles driveletter
Marsh Posté le 30-05-2002 à 15:48:17
antp a écrit a écrit : qu'est-ce que tu appelles driveletter |
Doit pas avoir la même aide que nous
Au fait:
When Windows shuts down, temporary files whose names have been created by this function are not automatically deleted.
Marsh Posté le 30-05-2002 à 21:07:55
'fectivement je regardais la syntaxe de la version 2.x des API...
J'ai mis à jour ma doc qui correspond à la syntaxe fournie par antp...
Mais ça marche pô !!!!!, j'ai pourtant l'impression de bien tout mettre les pointeurs qui vont bien:
J'ai ça (dans result et buf1)'G:\delphi5\Delphi\Projects\Èóh'
en codant ça:
Pdir,Ppref:PChar;
dir,pref:string;
Buf1: array [0..50] of Char;
result:string;
begin
Buf1[0] := #$00;
dir:='C:\';
pref:='D7_2CD';
Pdir:=Addr(dir);
Ppref:=Addr(pref);
gettempfilename(Pdir,Ppref,2,Buf1);
SetString(Result, Buf1, StrLen(Buf1));
end;
Ah bah pourquoi ?
Marsh Posté le 30-05-2002 à 22:28:18
QI130 a écrit a écrit : J'ai mis à jour ma doc qui correspond à la syntaxe fournie par antp... |
Euh, tu veux une étoile que tu fous son pseudo en gras?
[jfdsdjhfuetppo]--Message édité par Zion le 30-05-2002 à 22:28:30--[/jfdsdjhfuetppo]
Marsh Posté le 30-05-2002 à 22:29:11
Y a zion qui est jaloux
Marsh Posté le 30-05-2002 à 22:44:12
antp a écrit a écrit : Y a zion qui est jaloux |
lol
pour un copié collé de la doc ?
Marsh Posté le 31-05-2002 à 10:21:39
Nan nan, pas d'étoile, on n'est pas dans le Michelin !!!!!
Juste me dire ce qui déconne dans mon coding...
Marsh Posté le 31-05-2002 à 10:59:02
utilise cette fontion
function TempFilename(const SDir,SPref: String): String;
var
Buffer: array[0..MAX_PATH] of Char;
begin
StrPCopy(buffer,SDir);
GetTempFileName(Buffer,pchar(Sref),0,Buffer);
SetString(Result, Buffer, StrLen(Buffer));
end;
comme il est bien indiqué dans l'aide, seul les 3 premiers caractères de ta chaine prefixe seront utilisés, dans ton cas 'D7_'
Marsh Posté le 31-05-2002 à 16:07:47
Nickel !
Thanx
Marsh Posté le 29-05-2002 à 23:02:48
tout est dans le sujet....
Je sais que ça existe dans d'autres langages (ObjectRexx) mais sous Delphi ?
---------------
Il n'y a pas de bonne réponse à une mauvaise question.