gilds5
Messages postés19Date d'inscriptionjeudi 16 mars 2006StatutMembreDernière intervention13 juin 2006
-
1 juin 2006 à 15:30
excrt
Messages postés75Date d'inscriptionmercredi 5 avril 2006StatutMembreDernière intervention 3 juillet 2006
-
1 juin 2006 à 18:15
Salut le monde!
J'ai un piti problème pas méchant mais qui me bloque:
je voudrais ouvrir un fichier dont je ne connais pas le nom (il change régulièrement).
En gros, je voudrais faire:
fichier=fopen(NomFichier,"r");
Mais je ne sais pas comment attribuer à ma variable NomFichier le nom du fichier (si possible sans l'extention).
Si quelqu'un sait faire ça (je n'en doute pas), il me rendrait un fier service en m'indiquant la marche à suivre.
gilds5
Messages postés19Date d'inscriptionjeudi 16 mars 2006StatutMembreDernière intervention13 juin 2006 1 juin 2006 à 16:03
Ben justement je ne le connais pas le nom ce p... de fichier. En fait, c'est un fichier qui est déposé dans un dossier partagé par une "tierce personne". Tout ce que je sais, c'est qu'il est de la forme "DM0001.ok", et qu'il s'incrémente...(DM0002, DM0003...).
Voila, j'espère que c'est un peu plus clair.
En tous cas merci de vous intéresser au problème...
ben92600
Messages postés56Date d'inscriptiondimanche 13 novembre 2005StatutMembreDernière intervention11 juillet 2006 1 juin 2006 à 16:53
oki alors si tu est sur linux pour retrouver le nom de ton fichier tu
fait un open de ton repertoire et la tu aura la mm chose que si tu fait
ls -l donc a toi de retrouver le nom du fichier que tu veu le numero le
plus haut ou le plus bas ...
apres sur windo je donne ma langue au chat ...
Vous n’avez pas trouvé la réponse que vous recherchez ?
int main()
{
unsigned long uNumber;
unsigned long uMax = 0;
char szBuffer[MAX_PATH + 1];
// "c:\\dm*.ok" << avec l'astérix, il va trouver des fichiers du genre:
// « dm0001234.ok », avec plus de 4 caractères après « dm »
const char* szFilter = "c:\\dm????.ok"; // strictement 4 caractères, pas 2 ni 23 ni 5 mais 4
HANDLE hFind;
WIN32_FIND_DATAA win32FindData;
if ((hFind = FindFirstFileA(szFilter, &win32FindData)) != INVALID_HANDLE_VALUE)
{
do
{
if (!(win32FindData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
{
// +2 pour passer après les lettres « DM »
uNumber = strtoul(win32FindData.cFileName + 2, NULL, 10);
if (uNumber > uMax) {
uMax = uNumber;
}
}
}
while (FindNextFileA(hFind, &win32FindData) != FALSE);
FindClose(hFind);
}
// %.4 << assure d'avoir au moins 4 chiffres, des zéros sont placés à gauche pour compléter si besoin
_snprintf(szBuffer, MAX_PATH, "c:\\dm%.4lu.ok", uMax); // contient le nom du fichier le plus récent
puts(szBuffer); // on l'affiche(pour l'exemple)