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

MFC Discussion :

unrecognized character escape sequence


Sujet :

MFC

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    213
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 213
    Par d�faut unrecognized character escape sequence
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    unrecognized character escape sequence
    J'ai rencontr� cet erreur � la suite d'utilisation d'une variable comme suit:

    En cherchant un peu j'ai pu supprimer cet erreur en appliquant:

    Ma premiere question est pourquoi ce dysfonctionnement?

    Ensuite, j'ai une IHM en MFC dans laquelle j'utilise un controle de type Browser qui me renvoit le chemin d'un fichier selectionn�, du genre:

    D:\C++\PGM\save.txt
    Le probleme est qu'il m'est impossible de l'utiliser car il n'y a pas de double slash ( \\ ).

    Comment puis-je faire?

  2. #2
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    il est normal de doubler le \ , c'est la syntaxe

    sinon ton chemin est stock� dans une variable, ca ne posera pas de probl�me

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    213
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 213
    Par d�faut
    Ok pour la syntaxe.

    Mais j'utilise une fonction qui ne r�agit pas de la meme facon lors d'une utilisation comme suit:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    *argv="C:\\sauvegarde2"; ///fonctionne
    *argv="C:\sauvegarde2"; ///ne fonctionne pas
    Sachant que ma variable prends la deuxiemme forme ( sans double \ ),
    cela ne fonctione pas!

  4. #4
    Membre Expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par d�faut
    c'est la base des manipulations de chaines !!!
    le caractere '\' indique un caract�re speciales (\n,\r,...)

    pour lui il ne voit pas la s�quence '\' puis \'s' mais le caract�re '\s'. T'es oblig� de doubler le\

  5. #5
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    je repete que ca ne change rien
    c'est seulement si tu �cris en dur dans le code qu'il faut doubler les \\
    si c'est enregistr� dans une variable, il n'y a pas � s'en faire

  6. #6
    Membre Expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par d�faut
    euh nico j'espere que tu pense que je n'ai aps compris ca ?! :d je penses qu'il le fait en dur
    en plus je comprends pas cette ligne :

    tu veux affecter une valeur � argv ?

  7. #7
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    je suis sur qu'on parle de la meme chose

    mais si j'ai bien compris, son but est de r�cuperer la valeur d'un filedialog et de le passer � sa fonction.
    Il teste en passant un chemin en dur, et voit qu'ily a besoin de doubler les \\
    Il voit que dans le filedialog, il y a un seul \ ; donc il a peur que ca ne marche pas
    Mais comme le r�sultat du filedialog sera dans une variable, il n'y aura pas de soucis

    enfin ... si j'ai tout compris

  8. #8
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    213
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 213
    Par d�faut
    Le probleme est que j'utilise une fonction qui existe et que je ne peux modifier, et qui ne fonctionne apparenment que qd il y a des doubles \.

    Je ss un peu dans la .......

    Et

  9. #9
    Membre Expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par d�faut
    t'es t�tu toi lol

    t'as fonction tu lui passes quoi en param�tres une valeur dure ou bien une variable ?!
    si c'est une valeur dure t'es OBLIGE DE METTRE DOUBLER LE \
    sinon c'est fait automatiquement !!!!!

  10. #10
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    213
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 213
    Par d�faut
    une variable mais cela marche pas qd m�me......


  11. #11
    Membre Expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par d�faut
    poste le code de ta fonction

  12. #12
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    213
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 213
    Par d�faut
    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
    22
    23
    24
    25
     
    //////////////////////////////Si le boutton radio capture OffLine:Oui est coché//////////////////// 
     
    if(pTheApp->m_OffLine == 1) ////   Si le boutton radio IDC_RadioOffLine1 est coché, pTheApp->m_OffLine == 1
           //// -> renvoyé par void CSnifferDlg::OnRadioOffLine1() dans SnifferDlg.cpp
     {
     CString strOpenCap;  
     strOpenCap=pTheApp->m_EditOffLine;  //// remplissage de la variable 
     char *adresseOffLine=(char*)LPCTSTR(strOpenCap);   
    //////////////////////////////Si le boutton radio Filtre est coché//////////////////// 
     if(pTheApp->m_filtre == 1) 
     
      {
     
      } 
    //////////////////////////////Si le boutton radio Save Txt est coché//////////////////// 
     if(pTheApp->m_SaveTxt == 1) 
      {
      // CString m_EditSaveTxt;
       CString strSaveTxt; //// variable permettant de récupérer le chemin du fichier CAP ds lequel on souhaite effectuer la sauvegarde
       strSaveTxt= pTheApp->m_EditSaveTxt;
       char *adresseTxt=(char*)LPCTSTR(strSaveTxt);
      // MessageBox(adresseTxt);
       capt_off(&adresseTxt, &adresseOffLine); /// J'APPELLE MA FONCTION EN LUI FOURNISSANT EN PARAMMETRE LE CHEMIN DU FICHIER CHOISI
      }
    MA FONCTION APPELLEE:

    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
     
    int capt_off(char **argc, char **argv)
    {
    clean(*argc, stdin);
    //clean(*argv, stdin);
    stream = fopen( *argc, "w" );
     
    //*argv="C:\\sauvegarde2";   //// Avec ceci en dur ca fonctionne
    //*argv="C:\sauvegarde2";   //// Avec ceci en dur ca ne fonctionne pas
     
     /* Fonction de capture fournie par WinPcap que je ne peux modifier */
     if ((fp= pcap_open_offline(reinterpret_cast<const char *>(*argv),   
           errbuf     // error buffer
           )) == NULL)
     {
      fprintf(stderr,"\nUnable to open the file %s.\n", *argv);
      return -1;
     }
     printf("ok");

  13. #13
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    Citation Envoy� par beb30
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
     char *adresseOffLine=(char*)LPCTSTR(strOpenCap);
    on t'a d�ja dit que ca, c'�tait mal

    utilise l'op�rateur const char *

  14. #14
    Membre Expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par d�faut
    je comprends pas pq tu fais des pointeurs de pointeurs sur chaines :s !!!!

  15. #15
    R�dacteur

    Avatar de Matthieu Brucher
    Profil pro
    D�veloppeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    D�tails du profil
    Informations personnelles :
    �ge : 43
    Localisation : France, Pyr�n�es Atlantiques (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    if ((fp= pcap_open_offline(reinterpret_cast<const char *>(*argv),
    Mouais, on a vu mieux.

    Le pb que tu as, c'est que lorsque tu �crius dans ton code "C:\sauvegarde.txt", le compilateur doit transformer cette phrase en cha�ne de caract�res. Or on a parfois besoin de caract�res sp�ciaux, et pour dire qu'on veut un caract�re sp�ciale, on �chappe un caract�re, comme \n,\t ou \0. Le probl�me est qu'on utilise \, donc pour dire qu'on veut vraiment un \, il faut dire au compilateur qu'on ne veut pas �chapper le \\ en en mettant 2.
    Apr�s, pendant l'ex�cution, on ne passe plus par le compilateur, donc pas besoin de \\.

  16. #16
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    213
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 213
    Par d�faut
    Merci a tous pour vos conseils.

    je repete que ca ne change rien
    c'est seulement si tu �cris en dur dans le code qu'il faut doubler les \\
    si c'est enregistr� dans une variable, il n'y a pas � s'en faire
    C'est vrai.

    je comprends pas pq tu fais des pointeurs de pointeurs sur chaines :s !!!!
    Je les ai enlev�

    Ca fonctionne a pr�sent.

    Coooooolllllllllllllllllll!!!!

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. escape sequence ricoh mfp pour les tray 1 et 4
    Par cpf2006 dans le forum P�riph�riques
    R�ponses: 0
    Dernier message: 02/04/2012, 15h31
  2. [RegEx] Compilation failed: unrecognized character
    Par lmplmp dans le forum Langage
    R�ponses: 11
    Dernier message: 30/05/2010, 11h38
  3. interpr�ter des escape sequences
    Par morgalel dans le forum G�n�ral Java
    R�ponses: 1
    Dernier message: 08/03/2008, 16h47
  4. unknown escape sequence
    Par Ghunter59 dans le forum C
    R�ponses: 10
    Dernier message: 31/10/2007, 12h55
  5. R�ponses: 15
    Dernier message: 16/11/2005, 16h25

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