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 :

Récupération de données


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 4
    Par défaut Récupération de données
    Bonjour,
    J'ai un petit problèmes pour récupérer des données dans une variable.
    Dans le code source que je modifie j'ai un variable :
    unsigned char *tab[450];

    Moi je veux récupérer les caractères tab[42] à tab[46] par exemple, (mais le caractère final peut être à la position 48, donc je ne peux pas utilisé de code en fixe)

    et ma variable de stockage est
    gchar *MaVariable;

    Petit exemple pour vous aider à comprendre ce que j'ai essayé de vous expliquer;

    tab[42] = A;
    tab[43] = B;
    tab[44] = C;
    tab[45] = E;
    tab[46] = F;

    et je veux
    MaVariable = 'ABCDEF'

    Je vous remercie pour votre aide

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 110
    Par défaut
    Ton problème n'est pas très clair.
    En tous cas, le code de peut pas deviner la variable manquante par magie, il faut que tu lui impose un algorithme selon tes besoins.

  3. #3
    Membre éprouvé
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    189
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 189
    Par défaut
    tu veux créer une chaine ?
    -> std::copy + std::back_inserter ( sauf erreur ) .

    'ABCD' ne veux rien dire. C'est "ABCD" que tu cherches ?

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 17
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 57
    Par défaut
    autant utiliser strcpy:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strncpy(MaVariable, & (tab[42]), 6);
    Au passaga, il faudra d'abord allouer MaVariable et au lieu de:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unsigned char *tab[450];
    Ne serait-ce pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unsigned char tab[450];
    ?

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    124
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 124
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        char string[] = "Hello world !!!";
        char tmpString[1024];
        memset(tmpString, 0, strlen(tmpString));
        memcpy(tmpString, &string[6],5);
    tmpString = "world".

    Je pense que c'est ça que tu cherches, mais ce n'est pas trop du C++...
    Et en C++
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    char string[] = "Hello world !!!";
        char tmpString[1024];
        std::fill(&tmpString[0], &tmpString[1024], 0);
        std::memcpy(&tmpString[0],&string[6],5);
    Bien que les chaines de char soit plutôt C, je pense que ce code peut-être compris comme du C++.

  6. #6
    Membre éclairé Avatar de cynique
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 60
    Par défaut
    Citation Envoyé par yamashi Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        char string[] = "Hello world !!!";
        char tmpString[1024];
        memset(tmpString, 0, strlen(tmpString));
        memcpy(tmpString, &string[6],5);
    tmpString = "world".
    Non... tmpString = "worldIU_çèsdyvhsdçi_çèvysiceh_z_çey"

    Si le contenu "aléatoire" de tmpString commençait avec un '\000', le memset ferait rien parce que strlen(tmpString) == 0.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        char string[] = "Hello world !!!";
        char tmpString[1024];
        memset(tmpString, 0, sizeof(tmpString));
        memcpy(tmpString, &string[6],5);
    ça sera mieux.

    Ou:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        std::string helloWorld = "Hello world !!!";
        std::string tmpString = helloWorld.substr(6,5);

Discussions similaires

  1. Réponses: 4
    Dernier message: 05/04/2004, 10h09
  2. Réponses: 2
    Dernier message: 20/02/2004, 08h47
  3. [ DB2] => [ORACLE] Récupération de données
    Par LeDid dans le forum DB2
    Réponses: 3
    Dernier message: 25/06/2003, 17h10
  4. Réponses: 13
    Dernier message: 20/03/2003, 08h11
  5. [XMLRAD] récupération de donnée
    Par Mitch79 dans le forum XMLRAD
    Réponses: 7
    Dernier message: 30/01/2003, 15h36

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