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

Qt Discussion :

Suppression caractere d'echappement QString


Sujet :

Qt

  1. #1
    Membre régulier
    Avatar de mac&cheese
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 98
    Points : 96
    Points
    96
    Par défaut Suppression caractere d'echappement QString
    Bonsoir,

    Voila, je developpe un programme dans le cadre de mes etudes et je dois à un moment donné afficher une image avec un QPixmap.
    En ce qui concerne le chemin de l'image, il se trouve dans un fichier texte que je lis ligne par ligne.
    Donc je stocke le chemin dans un QString, mais le probleme est le suivant:
    le QString se termine par un CRLF, ce qui me pose probleme lorsque je tente de l'ouvrir via mon QPixmap.

    Alors je vous le demande, auriez-vous une solution ou une piste qui me permettrai de retirer ce CRLF mais il faut tout de meme un caractere qui termine mon QString.

    Mac & Cheese
    World's greatest inventors: Franklin, Edison and this REESE guy.

  2. #2
    Membre confirmé

    Inscrit en
    Octobre 2007
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 234
    Points : 644
    Points
    644
    Par défaut
    Première méthode: QString::trimmed() qui retire les caractères blancs en début et fin de ta string. Ca fait plus que retirer les le CRLF final, mais pour un path de fichier ça devrait convenir je pense.

    Sinon pour juste retirer le CRLF final (soit les 2 caractères "\r\n") je pense que tu peux faire un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if(str.right(2) == "\r\n")
        str = str.left(str.length() - 2)

  3. #3
    Membre régulier
    Avatar de mac&cheese
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 98
    Points : 96
    Points
    96
    Par défaut
    Merci beaucoup kinji1,

    J'ai opté pour la solution du QString::trimmed() qui marche à merveille.

    Mac & Cheese
    World's greatest inventors: Franklin, Edison and this REESE guy.

  4. #4
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    Salut,

    Le problème, c'est que tel quel, ça ne marchera que sur windows. Sur linux, tu auras juste un \n, il est donc préférable d'utiliser une QString::remove en 2 temps; une fois pour '\r', la seconde pour '\n'.

  5. #5
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par IrmatDen Voir le message
    Salut,

    Le problème, c'est que tel quel, ça ne marchera que sur windows. Sur linux, tu auras juste un \n, il est donc préférable d'utiliser une QString::remove en 2 temps; une fois pour '\r', la seconde pour '\n'.
    +1
    un truc comme
    ma_string =ma_string.remove('\n').remove ('\r')
    ca marche nikel

  6. #6
    Membre confirmé

    Inscrit en
    Octobre 2007
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 234
    Points : 644
    Points
    644
    Par défaut
    Oui c'est vrai, c'est mieux avec des removes séparés. J'ai écris ça vite fait en sans faire attention à la portabilité .

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

Discussions similaires

  1. Caractere d'echappement dans une requete SQL
    Par Seth77 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 10/01/2007, 09h56
  2. [C#] caractere d'echappement double quote
    Par nico33307 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 20/10/2006, 09h44
  3. [Oracle] caractère d'échappement pour '&'
    Par anne06 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 13/10/2006, 09h36
  4. Réponses: 2
    Dernier message: 14/10/2005, 17h05
  5. caractere d'echappement
    Par leviathan516 dans le forum ASP
    Réponses: 3
    Dernier message: 19/10/2004, 20h34

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