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 Discussion :

Attribuer à une macro la valeur "\"


Sujet :

C

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Attribuer à une macro la valeur "\"
    Bonjour/Bonsoir !

    Pour les besoins d'un logiciel que je développe, j'ai besoin de savoir sous quel OS tourne actuellement ledit logiciel, pour connaître la forme des séparateurs de dossiers, \ sous Windows, / pour presque tout le reste...
    J'ai donc eu l'idée (que je pensais géniale... ) de tester les macros définies par le compilateur en fonction de l'OS, puis d'en créer un nouvelle qui prendrait la valeur / ou \ en fonction du résultat ! Ce qui a donné le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #if !defined(_WIN16) || \
        !defined(_WIN32) || \
        !defined(_WIN64)
        #define FOLDER_SEPARATOR /
    #else
        #define FOLDER_SEPARATOR \
    #endif
    Évidemment, le problème semble évident : le préprocesseur prend ça pour une nouvelle ligne, me dit que mon #if n'est pas terminé (forcément, il ne voit pas le #endif), et me crache à la gueule en me demandant d'aller corriger mon code !
    J'ai essayé de doubler l'antislash, de le transformer en chaîne de caractères avec un # devant, mais rien...
    Je remercie d'avance ceux qui auraient une idée et qui voudront bien prendre le temps de m'aider !

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Résolu
    Pour ceux que ça intéresserait éventuellement, voici ce que j'ai trouvé pour résoudre le problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #define FOLDER_SEPARATOR "\\"
    Voilou, bonne soirée !

  3. #3
    Expert éminent
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 580
    Points : 7 712
    Points
    7 712
    Par défaut
    Bonjour

    et en ajoutant un commentaire /**/ après ?
    Mais comment de toute évidence ta maco est faite pour être concaténée, les valeurs "\" et "\\" sont très certainement celles qu'il faut

  4. #4
    Membre émérite
    Homme Profil pro
    sans emploi
    Inscrit en
    Janvier 2014
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2014
    Messages : 539
    Points : 2 601
    Points
    2 601
    Par défaut
    Citation Envoyé par fanf22 Voir le message
    Pour ceux que ça intéresserait éventuellement, voici ce que j'ai trouvé pour résoudre le problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #define FOLDER_SEPARATOR "\\"
    Voilou, bonne soirée !
    Bonjour,
    les solutions utilisent souvent deux macros, une définissant le séparateur sous forme de string et une autre sous forme de char. Par exemple la glib fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    #ifdef G_OS_WIN32
     
    /* On Win32, the canonical directory separator is the backslash, and
     * the search path separator is the semicolon. Note that also the
     * (forward) slash works as directory separator.
     */
    #define G_DIR_SEPARATOR '\\'
    #define G_DIR_SEPARATOR_S "\\"
    #define G_IS_DIR_SEPARATOR(c) ((c) == G_DIR_SEPARATOR || (c) == '/')
    #define G_SEARCHPATH_SEPARATOR ';'
    #define G_SEARCHPATH_SEPARATOR_S ";"
     
    #else  /* !G_OS_WIN32 */
     
    #define G_DIR_SEPARATOR '/'
    #define G_DIR_SEPARATOR_S "/"
    #define G_IS_DIR_SEPARATOR(c) ((c) == G_DIR_SEPARATOR)
    #define G_SEARCHPATH_SEPARATOR ':'
    #define G_SEARCHPATH_SEPARATOR_S ":"
     
    #endif /* !G_OS_WIN32 */

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Merci beaucoup pour cette idée, je n'avais pas du tout pensé à aller voir les sources de Glib ! Je m'en souviendrai au cas où !

    Bonne journée !

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

Discussions similaires

  1. Renvoi à une macro des valeurs saisies dans un userform
    Par MPRIBOM dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 07/12/2014, 16h33
  2. attribuer à une variable la valeur d'un opérateur (< >)
    Par philippe6 dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 22/02/2011, 12h06
  3. [Batch] Attribuer une plage de valeurs à une variable ?
    Par Arthryn dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 24/03/2010, 13h04
  4. [XL-2007] Assigner une icone dans le ruban personnalisé de'excel et lui attribuer une macro VBA
    Par Romanuche dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/07/2009, 10h44
  5. supprimer une table qui a des quotes dans son nom
    Par kleenex dans le forum Access
    Réponses: 2
    Dernier message: 17/10/2005, 16h03

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