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 :

Problème ListView et receiveText()


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 162
    Par défaut Problème ListView et receiveText()
    Bonjours à tous !
    Dans une appli client/serveur
    Voila j'ai créé un ListView avec plusieurs colonnes :
    -Utilisateur : nom d' utilisateur du client
    -@ IP :adresse Ip du client
    Coté client :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    AnsiString info =ClientSocket1->Socket->RemoteHost;
    ClientSocket1->Socket->SendText(info) ;
    AnsiString adresse=ClientSocket1->Address;
    ClientSocket1->Socket->SendText(adresse);
    Donc je veux réceptionner le text coté serveur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender,
          TCustomWinSocket *Socket)
    {
    AnsiString Buffer = Socket->ReceiveText();
     
    //ajoute le texte
    TListItem *Item =ListView1->Items->Add();
    Item->Caption=Buffer;
    Item->SubItems->Add(Buffer);
    Item->SubItems->Add("1.0");
    Item->SubItems->Add(Buffer);        
    }
    screen:

  2. #2
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    Ai-je mal lu ou il n'y a pas de question?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 162
    Par défaut
    oups oui j'ai été un peu vite :
    enfait ma question se résume ;comment faire pour recevoir l @ IP et l'Host dans les bonne colonnes ?

  4. #4
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    Il faut que tu fasses la décomposition analytique de la chaîne de caractère reçu.

    Tu pourrais envoyer tes données sous la forme: <ip>192.168.0.3</ip><host>localhost</host>

    Ou sinon tu sépares chaque item avec un caractère ou une série de caractère quelconque: 192.168.0.3|localhost

    EDIT:
    Aussi la trame envoyé pourrait avoir une grandeur fixe et tu connais la position de chaque item à l'intérieur. Tu mets des espaces comme buffer comme ça tu peux faire un trim.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 162
    Par défaut
    c'est vrai que je n'y pas du tout penser
    découper la trame pour la traiter je pense que c'est une bonne idée sur ce , je test..

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 162
    Par défaut
    voila j'ai découper ma trame avec des caractères de cette façon :
    coté client :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    AnsiString info =ClientSocket1->Socket->RemoteHost;
    AnsiString adresse=ClientSocket1->Address;
    ClientSocket1->Socket->SendText(info+"|") ;
    ClientSocket1->Socket->SendText("<"+adresse+">");
    mais j'ai beaucoup de mal a réceptionner coté serveur, comment récupérer les caractères qui coupe ma trame :

    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
    AnsiString MsgComplet = Socket->ReceiveText() ;
     
    //ajoute le texte
    TListItem *Item =ListView1->Items->Add();
     
    for(int i =1 ; i<MsgComplet.Length();i++)
    {
     
              if(MsgComplet[i]=='|')//test si le caractère est présent dans la chaine
              {
              Item->Caption= MsgComplet;
              }
              else
              {
               Item->Caption="foiré";
              }
    }

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

Discussions similaires

  1. [AC-2003] Problème Listview Access
    Par usac49 dans le forum VBA Access
    Réponses: 4
    Dernier message: 22/09/2009, 14h36
  2. problème listviews vba
    Par Beralienne dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 21/06/2008, 00h49
  3. Problème ListView (grille)
    Par Nuxiz dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 28/12/2007, 20h21
  4. Problème listview VB6
    Par hdmak dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 02/04/2007, 13h58
  5. [VB.NET] Problème ListView avec checkbox
    Par elkidos dans le forum Windows Forms
    Réponses: 1
    Dernier message: 15/02/2007, 15h27

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