Accueil > Forum > > > > convertir chemin d'un fichier
convertir chemin d'un fichier
jeudi 13 avril 2006 à 19:15:48 |
convertir chemin d'un fichier

boumarsel
|
bonjour, une fonction me retorune un chemin sous format : /physicaldrive/mondossier/fichier1 (je me rappelle pas exactement, mais c'est pas loin de ça, ça doit etre physicaldrive0 pour les fichier de la partition c) alors je veux le convertir en c:\mondossier\fichier1 (win32 api) merci
|
|
jeudi 13 avril 2006 à 22:07:24 |
Re : convertir chemin d'un fichier

excrt
|
/*
* 2006/04/13
*
* main.c
*
*/
#include <ctype.h> /* isdigit() */
#include <stdio.h> /* puts() */
#include <stdlib.h> /* atoi()/free() */
#include <string.h> /* _strdup() */
/*
* constantes
*/
static const char _DRIVE[] = {/*'A', 'B',*/
'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N',\
'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
#define _DRIVE_COUNT ((sizeof(_DRIVE) / sizeof(_DRIVE[0])) - 1)
static const char* _PHYSICAL_DRIVE = "physicaldrive";
#define _PHYSICAL_DRIVE_LENGTH (sizeof("physicaldrive") - 1)
/*
* fonctions locales
*/
static __inline void __stdcall _slash_to_backslash(char* string);
static int __stdcall _convert_pathname(char* pathname);
/*
* main()
*/
int __cdecl main()
{
char* path = _strdup("/physicaldrive0/dossier 1/dossier 2/mon fichier.txt");
//char* path = _strdup("test");
//char* path = _strdup("////test/////");
//char* path = _strdup("/physicaldrive1234\\test");
//char* path = _strdup("/physicaldrive////");
//char* path = _strdup("physicaldrive121/dossier 1/dossier 2/mon fichier.txt");
_convert_pathname(path);
puts(path);
free(path);
return 0;
}
/*
* remplace tous les '/' par des '\\'
*/
static __inline void __stdcall _slash_to_backslash(char* string)
{
for (; *string != '\0'; string++)
{
if (*string == '/') {
*string = '\\';
}
}
}
/*
* from:
* - [/]physicaldrive<N>[/folder1[/folder2[/...]]]
* to:
* - <D>:\\[folder1[\\folder2[\\...]]]
*
* <N> => Number
* <D> => Drive
*
*/
static int __stdcall _convert_pathname(char* pathname)
{
unsigned drive_index;
char* left = pathname;
_slash_to_backslash(pathname);
if (*pathname == '\\') {
pathname++;
}
if (_strnicmp(pathname, _PHYSICAL_DRIVE, _PHYSICAL_DRIVE_LENGTH) == 0)
{
/* skip « physicaldrive » */
pathname += _PHYSICAL_DRIVE_LENGTH;
if ( isdigit(*(unsigned char*)pathname) )
{
if
((drive_index = (unsigned)atoi(pathname)) > _DRIVE_COUNT) {
drive_index = _DRIVE_COUNT;
}
/* skip number */
while ( isdigit(*(unsigned char*)pathname) ) {
pathname++;
}
*left++ = _DRIVE[drive_index];
*left++ = ':';
while ((*left++ = *pathname++) != '\0') {
/*nothing*/
}
return 1; /* SUCCESS */
}
/*
else {
return 0; // ERROR: invalid drive number
}
*/
}
return 0; /* ERROR: invalid pathname */
}
/****************************************************/
C:\dossier 1\dossier 2\mon fichier.txt
Press any key to continue
-=-= ExCRT =-=-
|
|
jeudi 13 avril 2006 à 22:58:43 |
Re : convertir chemin d'un fichier

BruNews
|
A quoi sert le tableau _DRIVE[] ???
*left++ = _DRIVE[drive_index]; deviendrait: *left++ = drive_index + 'C';
ciao... BruNews, MVP VC++
|
|
vendredi 14 avril 2006 à 03:54:49 |
Re : convertir chemin d'un fichier

excrt
|
oui, tout a fait
-=-= ExCRT =-=-
|
|
lundi 17 avril 2006 à 19:59:34 |
Re : convertir chemin d'un fichier

boumarsel
|
je vous remercie pour votre effort mais ce que je demande c'est tout simplement une fonction API pour convertir le chemin de "device\harddisk0\mondossier\fichier" (je me suis trompé au début) à "c:\mondossier\fichier". il y a certainement une fonction pour le faire sans implémenter tous ces lignes de code, le chemin "device\harddisk0\..." que je cherche à convertir est renvoyé par la fonction API getMappedFile (si je me rappelle bien). j'ai testé qq fonctions que j'ai trouvé dans la section "path" et "drive" de la documentation MSDN mais ça n'a pas marché (c'est du win32api non pas du turbo c ;) )
je vous remercie encore une fois pour votre effort, il sont de plus en plus rares les développeurs qui sont préts à sacrifier bcp de temps pour répondre à des questions sur ce forum.
|
|
mardi 18 avril 2006 à 16:37:17 |
Re : convertir chemin d'un fichier

excrt
|
rien à voir avec « TurboC », c'est du C carrément. L'API Windows est elle-même codé en C et en C++. « TurboC » n'est pas un langage mais un compilateur ... Je ne crois pas que tu puisse trouver une fonction dans l'API Windows qui permet de convertir ton « path » mais, bonne recherche ...
-=-= ExCRT =-=-
|
|
mardi 18 avril 2006 à 20:07:29 |
Re : convertir chemin d'un fichier

boumarsel
|
je préfére ne pas orienter la déscussion à qq chose d'inutile, j'ai une question et je cherche une réponse, si tu n'as pas une information utile ferme cette page et cherche ailleur. me reste à te signaler que c'est pas à toi de me montrer la différence entre un langage et un compilateur ou ide, et si je l'ai dit dans mon msg c'est pour la simple raison que j'aime appeler comme ça tout programme du genre.
|
|
dimanche 23 avril 2006 à 17:32:50 |
Re : convertir chemin d'un fichier

excrt
|
ooohhhh mais on ce calme mon petit ... si tu n'aimes pas cette « petite remarque », c'est ton problème. je n'ai pas crié, je ne t'ai pas insulté, ni rien d'autre du genre, alors prends une grande inspiration et expire lentement ... TurboC est un compilateur et non un langage(il n'y a rien de méchant/insultant/... dans cette phrase).
-=-= ExCRT =-=-
|
|
Cette discussion est classée dans : fichier, convertir, chemin, fichier1, mondossier
Répondre à ce message
Sujets en rapport avec ce message
transferer des lignes d'un fichier vers un autre? [ par requinB ]
bonjour,qlq'un peut maider?, je veux ajouter des lignes d'un fichier (toutes) sur un autre fichier(en mode ajout), ...est ce que cela est bon:fichier1
Convertir un fichier de C en Pascal [ par Frank ]
Quelqu'un sait ou je pourrais trouver un bon petit programme pour convertir un fichier de C en Pascal !?!Merci D'avance !Frank
splitter de fichier [ par 24Karas ]
salut à tousEn fait je fais un splitter de fichier mais j'ai un probleme. il me rajoute 1 octet sur la découpe et 1 octet par fichier pour la reconsti
Récupération du chemin d'un fichier dans le 'path' [ par BettaSplendens ]
Bonjour,j'ai 2 choses... d'un côté le chemin avec laquelle est lancée mon application, qui comporte "bien entendu" plusieurs répertoires.. désignons i
Ouvrir flux sur fichier dont le chemin contient des espaces (besoin d'aide:))) [ par vychnou ]
Es ce que quelqun saurait comment ouvrir un flux sur un fichier dont le nom ou le chemin contient des espaces?ex:string destination="c:\program files\
Chemin d'un fichier [ par gagah1 ]
Salut à tous!Je voudrais savoir quelle fonction en API win32 dois-je appeller pour chercher le chemin d'un fichier quelconque?Merci d'avance pour les
ouverture de fichier avec fopen() [ par jack_j ]
Salut à tous!J'ai un petit problème avec du c. Je suis débutant et je cherche à ouvrir un fichier pour en extraire des données.Le nom et chemin du fic
probleme de listage de fichiers [ par Kevin972 ]
salut!! je ne comprends pas la fonction ne liste rien du tout.........al'aide!!!!!!!!!!!!!!!!! voici ma fonction:#include#include#include#include#in
comment faire??? [ par slim ]
Bonjour!je voudrais bien savoir comment convertir un fichier texte en un fichier Access en utilisant un programme C++!j'aimerais bien encore savoir co
Chemin de fichier avec fopen en tant que variable (gros débutant) [ par jason_red2 ]
Je m'explique:La fonction fopen admet, en tant qu'argument,des const char*, ce qui implique de définir le Path soit par une constante, un typedef pass
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|