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

SL & STL C++ Discussion :

convertion string au format Latin1


Sujet :

SL & STL C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 53
    Par défaut convertion string au format Latin1
    Bonjour,

    Je travaille atuellement sur un code qui utilise la librairie QT pour la transformation des formats des chaines de caractères.
    Je voudrais pouvoir me passer de QT et ecrire moi même la fonction de convertion vers le type Latin1. J'ai donc récupérer le code de QT dans Qstring.cpp qui est le suivant :
    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
    
    QByteArray QString::toLatin1() const
    {
        QByteArray ba;
        if (d->size) {
            ba.resize(d->size);
            const ushort *i = d->data;
            const ushort *e = d->data + d->size;
            uchar *s = (uchar*) ba.data();
            while (i != e) {
                *s++ = (*i>0xff) ? '?' : (uchar) *i;
                ++i;
            }
        }
        return ba;
    }
    Il y a deux points que je ne comprend pas ( en rouge dans le code ).
    premier point on affecte sur un unsigned short int une chiane de caractère.
    Deuxième point on test si chaque caractère de la chaine est supérieur a 0xff? mais un char est codé sur 8bits donc ne pas etre supérieur.

    Si qqun a une idée merci de m'éclaircir.

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 035
    Par défaut
    Bonjour,
    Citation Envoyé par alaparra Voir le message

    premier point on affecte sur un unsigned short int une chaine de caractère.
    Deuxième point on test si chaque caractère de la chaine est supérieur a 0xff? mais un char est codé sur 8bits donc ne pas être supérieur.
    Si qqun a une idée merci de m'éclaircir.
    les qstring utilise les wide char. qui sont sur 16 bits.
    Ici il vérifie que chaque w_char ne soit pas plus grand qu'un char (*i>0xff). Il pourra donc le convertir facilement. Sinon il n'y as pas de correspondance "simple" donc il met un '?'

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 53
    Par défaut
    merci pour ta reponse, c'est ce que je voulais savoir
    ca va bien m'aider !

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 294
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 294
    Par défaut
    Salut,

    Juste comme ca, parce qu'il faut bien quelqu'un pour le dire, je doute que ca soit tres legal de copier-coller du code de Qt...

    MAT.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 53
    Par défaut
    Salut,

    J'ai la license QT, le seul but de reproduire le code est de ne pas me trimballer les 300Mo de la librairie juste pour la classe Qstring et ca méthode de convertion de format

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 294
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 294
    Par défaut
    Oh même avec la licence commerciale je ne crois pas qu'il soit autorisé de copier-coller du code

    MAT.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 53
    Par défaut
    En fait je copie pas le code, je voulais savoir comment c'etait fait pour la recoder sans QT.

  8. #8
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 294
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 294
    Par défaut
    Ok là c'est bon alors !

    MAT.

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

Discussions similaires

  1. Convertion string en char*
    Par krolineeee dans le forum C++
    Réponses: 9
    Dernier message: 24/07/2006, 14h35
  2. Réponses: 2
    Dernier message: 06/12/2005, 12h01
  3. Réponses: 14
    Dernier message: 29/06/2005, 10h22
  4. Convertion string => entier
    Par en_gel_ho dans le forum Requêtes
    Réponses: 4
    Dernier message: 01/06/2005, 12h59
  5. convertion string --> long
    Par JulienT dans le forum Langage
    Réponses: 3
    Dernier message: 23/03/2005, 23h05

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