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 :

wchar_t contenant une chaine avec parentheses


Sujet :

C++

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 5
    Points : 2
    Points
    2
    Par défaut wchar_t contenant une chaine avec parentheses
    Mon nom de fichier est "C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Microsoft\Media Player\Cache d’images\LocalMLS\{2C0A022A-D857-4EBB-A139-C3F9E4FB1961}.jpg"

    Je recupere le fichier de cette facon, ce qui ne pose aucun probleme pour des noms de fichiers sans parenthese.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    int main(int n,char *params[])
    {
    wchar_t fichier_source[1024];
    char* fichier=params[1];
    mbstowcs(fichier_source,fichier,1023);
    ///  puis traitement par gdiplus
    }
    Je pense que les parenthèses posent le probleme, si quelqu'un pouvait m'aider ou me mettre sur une piste.
    Merci d'avance.

  2. #2
    Membre émérite
    Avatar de imperio
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 852
    Points : 2 298
    Points
    2 298
    Par défaut
    Je ne vois pas vraiment pourquoi tu utilises cette fonction mais tu dois en avoir l'utilité... Pourquoi ne pas envoyer directement params[1] dans ta fonction ? Je l'ai testé de mon côté et le problème ne vient pas de là. Tu as quoi comme résultat dans fichier_source ?

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci de ta réponse.
    Je lance l'executable depuis une ligne de commande et gdiplus ne fonctionne pas avec des char, d'où l'utilite de le convertir en wchar_T.
    Ensuite redimensionnement + filtres, etc... sur l'image.
    Je debute en c++ et j'ai déjà créé pas mal de fonctions qui marchent tres bien dont celle ci sauf qu'avec ce nom de fichier, il ne se passe rien, l'exe se lance puis se referme.
    Dans char *fichier je recupere bien le nom de fichier avec des doubles slash. Par contre je n'arrive pas a afficher le resultat de fichier_source avec messagebox puisque messagebox necessite un char donc je suis un peu coincé pour debugger.

  4. #4
    Membre émérite
    Avatar de imperio
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 852
    Points : 2 298
    Points
    2 298
    Par défaut
    Tu fais une boucle et tu affiches chaque valeur en la castant en char avec std::cout. C'est ce que j'ai fait et ça a marché parfaitement, c'est pour ça que je pense qu'il y a un problème ailleurs dans ton code. Tu sais à quel endroit il plante ?

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    merci mais entre temps j'ai reussi a afficher la valeur et effectivement ce ne sont pas les parenthèses qui font planter mais l'apostrophe.
    Je recupere un "?" a la place de l'apostrophe dans le chemin du fichier apres l'avoir passé en wchar_t.
    Donc toujours pas résolu.

  6. #6
    Membre émérite
    Avatar de imperio
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 852
    Points : 2 298
    Points
    2 298
    Par défaut
    Une fois de plus ça marche pour moi... Comment ça se fait que t'as des double-quotes dans ta chaîne

    Edit : désolé j'avais mal lu, mais même avec un apostrophe ça marche. Comme je disais, je pense que le problème vient d'ailleurs.

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Je te remercie de prendre le temps de m'aider.
    En fait cette fameuse apostrophe correspond au caractere Unicode /u209 et n'est donc pas celle qu'on tape ddepuis le clavier.
    C:\\Windows\\ServiceProfiles\\NetworkService\\AppData\\Local\\Microsoft\\Media Player\\Cache d’images\\LocalMLS\\{9FF89B47-FD86-43D8-8CDF-5355F7D02151}.jpg"
    J'ai donc testé en renommant le repertoire et en tapant l'apostrophe au clavier et la comme par miracle tout fonctionne.
    Donc c'est cette fameuse apostrophe qui fait planté.

  8. #8
    Membre émérite
    Avatar de imperio
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 852
    Points : 2 298
    Points
    2 298
    Par défaut
    Si c'est pas un caractère ascii ça me paraît logique. Du coup ton problème est résolu ?

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci encore d'avoir consacré du temps a mon probleme.
    Oui le probleme est plus ou moins resolu, je pense que seul Microsoft a des idees aussi ambigues pour nommer un dossier. Ce dossier est en effet un des dossiers de Windows.

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

Discussions similaires

  1. [Oracle] Requête avec une variable contenant une chaine de caractères accentué non trouvé
    Par chris0938 dans le forum PHP & Base de données
    Réponses: 19
    Dernier message: 07/01/2011, 21h23
  2. [Java/String] Completer une chaine avec un caractere
    Par shaun_the_sheep dans le forum Langage
    Réponses: 4
    Dernier message: 31/05/2005, 09h01
  3. [VB.NET] Compléter une chaine avec des espaces
    Par Lois dans le forum Windows Forms
    Réponses: 4
    Dernier message: 24/03/2005, 09h09
  4. Affichage de l'adresse d'une chaine avec cout
    Par thierryguilbert dans le forum SL & STL
    Réponses: 4
    Dernier message: 14/03/2005, 16h04
  5. Trouver un fichier contenant une chaine ?
    Par narmataru dans le forum Linux
    Réponses: 2
    Dernier message: 29/04/2004, 10h49

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