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++Builder Discussion :

[Débutant] Triage de données dans un String


Sujet :

C++Builder

  1. #1
    Membre régulier Avatar de Poilou
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 59
    Points : 70
    Points
    70
    Par défaut [Débutant] Triage de données dans un String
    Voici une question que la plupart d'entre vous trouveront bêtes mais tant pis...

    Je reçois d'une fonction provenant d'un composant ActiveX de gestion de cartes géographiques une chaine de caractères contenant des informations que je désires traiter.

    Ces informations se suivent et sont séparées par des retours chariots. je ne vois pas comment faire pour traiter cette chaine ainsi récupérer ces informations de façon indépendante.

    Merci d'avance pour votre aide.
    Proverbe nain : On boira du lait le jour où les vaches mangeront du houblon !

    le site de ma douce et tendre

  2. #2
    ubu
    ubu est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 38
    Points : 47
    Points
    47
    Par défaut
    Utilise un objet pour faire cela.

    Premièrement, tu crées un Ansistring avec ta chaîne de caractères,(si ce n'est pas déjà fait).
    Ensuite, tu l'affecte à la propriété Text d'un TStrings.
    Les sous chaînes seront séparées à chaque rencontre d'un retour chariot (ou d'un passage à la ligne).

    Tu peux enfin accéder à chaque sous chaine (i.e. ligne) en utilisant la propriété Strings avec l'index de la ligne (voir également la propriété Count).

  3. #3
    Membre régulier Avatar de Poilou
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 59
    Points : 70
    Points
    70
    Par défaut
    Je ne vois pas trop comment utiliser cette méthode (moi et les variables déclarées dynamiquement, cela fait 2).

    Voici le cod qu je dois convertir de VB à C++.
    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
    Dim Str_Cahmp, Caractere As String
    Dim Taille_Tab As Integer
    Dim Tab_Info() As String
    Dim ListeInfoGeo As String
     
    Caractere=Chr(13)
    Str_Champ="ID_support "
    ListeInfoGeo=Carte_Geo.XgoObjectInfo 'fonction de l'activeX qui renvoie la trame
    Tab_Info=Split(ListeInfoGeo,Caractere)
    Taille_Tab=Ubound(Tab_Info)
    For i= 0 To (Taille_Tab-1)
     Position=InStr(1,Tab_Info(i),Str_Champ)
     If Position<>0 Then
      Case_Tab=i
      Exit For
     End If
    Next i
    Si Quelqu'un peut m'aider à traduire ce code, il sera le bienvenu.
    Proverbe nain : On boira du lait le jour où les vaches mangeront du houblon !

    le site de ma douce et tendre

  4. #4
    ubu
    ubu est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 38
    Points : 47
    Points
    47
    Par défaut
    Il me semble (à vérifier quand même) que le type string de VB est un WideString (ou wchar_t *).
    Il existe un constructeur pour AnsiString qui prend un wchar_t* en argument.

    Le premier point est d'instancier ton ActiveX.

    Ensuite tu appelles sa methode comme dans ton exemple, mais en construisant un AnsiString.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AnsiString str=AnsiString(Carte_Geo->XgoObjectInfo());
    Ensuite créer le TStrings et lui affecter l'Ansistring:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    TStrings tstr=new TStrings;
    tstr->Text=str;
    Enfin, accéder aux lignes:
    for (int i=0;i<tstr->Count;i++)
      // traitement de la ligne i, accès à ladite ligne par : tstr->Strings[i];

  5. #5
    Membre régulier Avatar de Poilou
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 59
    Points : 70
    Points
    70
    Par défaut
    Merci Beaucoup
    Proverbe nain : On boira du lait le jour où les vaches mangeront du houblon !

    le site de ma douce et tendre

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

Discussions similaires

  1. [Débutante] Insertion de données dans la base
    Par naru40001 dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 30/09/2008, 14h02
  2. [Débutant]Problème de données dans une variable
    Par stansoad0108 dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 26/06/2008, 14h36
  3. [XSLT Débutant] tri de données dans un XML
    Par astrolane dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 14/09/2007, 17h30
  4. Réponses: 9
    Dernier message: 21/02/2006, 09h06
  5. Réponses: 2
    Dernier message: 16/01/2006, 19h34

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