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 :

Séquence d'échappement complexe


Sujet :

C#

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Avril 2010
    Messages : 25
    Points : 21
    Points
    21
    Par défaut Séquence d'échappement complexe
    Bonjour à tous,

    Voici mon problème :

    Je lis un fichier texte contenant par exemple :

    etc

    Pour chaque ligne de ce fichier texte j’envoie sur le port série la commande echo avec en paramètre la ligne entre guillemets simples :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    echo 'aaa';
    echo 'bbb';
    echo 'cc'c';
    Pour la troisième ligne j'ai une erreur puisqu'il y a un guillemet simple qui traine.

    Je cherche donc à remplacer ' par ''\''' avec la commande replace (attention ce sont bien des simples guillemets, il n'y a pas de guillemets doubles).

    De manière à avoir : echo 'cc''\'''c'; En effet la chaine ''\''' correspond au guillemet simple sous bash (testé).

    J'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    str.Replace("\'", "''\'''");
    et quelques variantes sans succès... Je pense qu'il faut faire une deuxième couche d'échappement mais je ne l'ai pas trouvé.

    Merci d'avance pour votre aide. Je pense qu'il doit exister un outil en ligne pour faire ça ...

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Double le backslash :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    str = str.Replace("'", "\\'");
    Ou alors utilise une chaines verbatim :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    str = str.Replace("'", @"\'");

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Avril 2010
    Messages : 25
    Points : 21
    Points
    21
    Par défaut
    Merci tomlev je connaissais pas les chaînes verbatim, c'est bien pratique quand les séquences d'échappement commencent à être complexes !

    Dans mon cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    str.Replace(@"'", @"''\'''");
    devrait fonctionner, je testerai lundi.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par dedibox26 Voir le message
    Dans mon cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    str.Replace(@"'", @"''\'''");
    devrait fonctionner, je testerai lundi.
    Pas besoin du @ pour la première, ça sert seulement si la chaine contient des backslash

Discussions similaires

  1. Séquence d'échappement sous Delphi
    Par chahinerue6 dans le forum Langage
    Réponses: 2
    Dernier message: 29/04/2010, 23h50
  2. Interpréter les séquences d'échappement
    Par Invité dans le forum Windows Vista
    Réponses: 16
    Dernier message: 10/03/2010, 00h47
  3. Séquence d'échappement et redirection de flux
    Par Metalspy dans le forum Linux
    Réponses: 4
    Dernier message: 27/07/2009, 22h31
  4. Séquences d'échappement en runtime
    Par saragaglia dans le forum Bibliothèque standard
    Réponses: 3
    Dernier message: 30/10/2008, 09h49
  5. [Prolog+LaTeX] Séquence d'échappement inconnue
    Par jpsegret dans le forum Prolog
    Réponses: 1
    Dernier message: 01/11/2007, 14h40

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