IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Comment convertir un nom de fichier Windows 98/2000/XP en nom MSDOS (8 caractères) ?


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de benj63
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Mai 2002
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 207
    Par défaut Comment convertir un nom de fichier Windows 98/2000/XP en nom MSDOS (8 caractères) ?
    Bonjour,

    Je cherche une commande permettant de convertir facilement un nom de fichier Windows en nom de fichier au format MSDOS, sur 8 caractères. Par exemple, si on a 2 répertoires "C:\Program Files\TestNumero1" et "C:\Program Files\TestNumero2", on obtiendra :

    C:\Program Files\TestNumero1 deviendra C:\Progra~1\TestNu~1
    C:\Program Files\TestNumero2 deviendra C:\Progra~1\TestNu~2

    Je ne peux donc pas simplement utiliser une fonction réduisant les chaines à 8 caractères terminés par ~1 pour chaque groupe séparé par un \ car, comme dans mon exemple, si plusieurs répertoires commencent de façon identique, le nom des fichiers MSDOS correspondant passera à ~1, ~2, ~3, etc.

    Merci par avance !

  2. #2
    Membre émérite
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Par défaut
    Salut,
    après une petite recherche dans la FAQ, j'ai trouvé ca qui correspond exactement à ce que tu cherches.

  3. #3
    Membre éclairé Avatar de benj63
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Mai 2002
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 207
    Par défaut
    Merci... Après une recherche dans l'aide de C++ Builder, j'avais trouvé une autre solution : ExtractShortPathName(nom_fichier);

    Le problème de ces 2 solutions, c'est qu'elles ne renvoient rien si le fichier n'existe pas Du coup, j'ai feinté en créant une fonction qui lance ExtractShortPathName après avoir créé un fichier temporaire si celui-ci n'existe pas... C'est pas très propre, mais faute de mieux...

    Je mets le tag résolu, mais si des personnes trouvent comment obtenir le nom d'un fichier au format 8.3 si ce dernier n'existe pas, je suis bien sûr preneur...

  4. #4
    Membre émérite
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Par défaut
    Tu as la fonction FileExists qui te permet de tester proprement si le fichier existe ou pas. Cela évite de créer un fichier temporaire.

  5. #5
    Membre éclairé Avatar de benj63
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Mai 2002
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 207
    Par défaut
    Oui, je connais et j'utilise en effet cette fonction pour vérifier si un fichier existe ou non avant de créer un fichier temporaire, mais le fait de créer un fichier temporaire n'est pas très propre...

    Je préférerais connaître directement le nom du fichier au format 8.3 sans avoir à créer ce fichier temporaire, nécessaire à ExtractShortPathName pour qu'il me fournisse un chaine non vide...

  6. #6
    Membre émérite
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Par défaut
    Tu veux quoi exactement lorsque le fichier n'existe pas?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 02/09/2014, 11h10
  2. [XL-2010] Extraire des caractères à un nom de fichier et prendre en compte le nom de fichier
    Par Malcomiix dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 18/03/2013, 16h51
  3. [XL-2003] Comment utiliser Windows(filename).activate? avec un nom de fichier variable
    Par jeo13 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/05/2011, 16h32
  4. Réponses: 7
    Dernier message: 06/08/2007, 14h34
  5. [PDF] comment convertir un PDF en fichier images
    Par magnus2005 dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 23/05/2006, 19h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo