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

VB 6 et antérieur Discussion :

Formater un texte pour récuperer des coordonnées


Sujet :

VB 6 et antérieur

  1. #1
    Membre régulier Avatar de Ramdoulou
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 286
    Points : 107
    Points
    107
    Par défaut Formater un texte pour récuperer des coordonnées
    Bonjour =)
    Je reprend un message qui était dans un topic que j'ai crée (http://www.developpez.net/forums/d64...k/#post3774075)
    Alors voilà, j'ai un petit soucis pour récupérer et utiliser les coordonnées.

    Elles sont sous forme x,y
    Donc les clients recupèrent les données reçues donc x,y

    J'ai essayé de dire que si txtOutput est sous forme x,y alors
    C1.text = x
    C2.text = y

    Et ensuite, j'utiliserai ces coordonnées.

    Mais jgalere pour me servir de la formule Format$, donc quelqu'un aurait l'amabilité de me dire (sans forcemment me donner le code) comment je dois m'y prendre.

    Merci de votre patience.

    [edit] : Je sais que pour reconstituer une chaîne de texte, on doit utiliser un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        Dim LaChaine As String
    '***** Reconstituton de la chaine ******
    LaChaine = txtOutput.Text
    '********************************
    LaChaine = Replace(LaChaine, " ", " ") 'remplacement des espaces par le separateur qui sera utilisé dans la fonction Split()
    LaChaine = Replace(LaChaine, vbCrLf, "*") 'remplacement des retour à la lignes
     
        Dim TablMot() As String
    TablMot = Split(LaChaine, ",") 'recuperation de chaque mot delemité par ,
    Label1 = TablMot(0)
    Label2 = TablMot(1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Votre clavier comporte plus de 100 touches, pourquoi utiliser le langage SMS ?

  2. #2
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    j'ai l'impression que tu poses la question alors que tu cites toi meme la reponse : la fonction Split

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Private Sub Command1_Click()
    Dim Ch As String
    Dim CutCh
    Dim X As Single
    Dim Y As Single
    Ch = "456789,321654" & vbCrLf
    CutCh = Split(Ch, ",")
    X = CutCh(0)
    Y = CutCh(1)
    Debug.Print X, Y
    End Sub
    Fais un peu de recherche (dans l'aide de VB, sur ce forum, sur Google ou autre) ou d'essai par toi meme stp.
    Pour VB6 : N'oubliez pas d'aller voir la FAQ et les Tutoriels
    Vous trouvez une reponse particulierement utile ? Votez pour !

  3. #3
    Membre régulier Avatar de Ramdoulou
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 286
    Points : 107
    Points
    107
    Par défaut
    Ah oui en effet, j'avais pas très bien compris la fonction Split.

    Je fais beaucoup d'essais, mais souvent pas les bons :s

    Merci pour ta réponse !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Votre clavier comporte plus de 100 touches, pourquoi utiliser le langage SMS ?

  4. #4
    Membre régulier Avatar de Ramdoulou
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 286
    Points : 107
    Points
    107
    Par défaut
    Donc voilà après avoir effectué des tests, j'arrive à effectuer des déplacements d'images etc...

    Mais il y a un probleme.
    Quand j'ai demandé pour formater le text etc...
    maintenant il faut absoluement que il y ait une virgule...

    J'aimerai que ca fasse une condition par exemple, si les données reçu sont sous forme x,y alors ont recupère les coordonnées, sinon on prend ça pour une donnée de type texte.

    J'ai essayé quelques conditions, mais jsuis pas arrivés à mes fins...=s

    [edit] : jviens de reflechir un ptit coup, x,y reste dans tous les cas une valeur numérique...donc est ce que faire une condition par exemple si le contenu du texte est une valeur numérique (à virgule dans mon cas) alors on recupère les coordonnées, peut marcher ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Votre clavier comporte plus de 100 touches, pourquoi utiliser le langage SMS ?

  5. #5
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    Et pourquoi ne transmettre que deux infos.
    Envoir une premiere info indiquant ce que sont les info suivantes, le tout sparé par un caractere de séparation connu
    Exemple :
    Coord|10|15
    Text|Blabla

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CutCh =Split(Data,chr(124))
    Select case CutCh(0)
    Case "Coord"
      'CutCh(1) et CutCh(2) contiennent des coordonnées
    Case "Text"
      'CutCh(1) contient du texte
    Calse Else
      'Heu, à ton choix
    End Select
    En général, on ne demande de conseils que pour ne pas les suivre ou, si on les a suivis, reprocher à quelqu'un de les avoir donnés
    (ALEXANDRE DUMAS)

    N'hésitez pas à visiter ma page de contributions

  6. #6
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    Ce n'est pas tant la difficulte d'envoyer plusieurs donnees que le "protocole" que tu comptes definir entre ton serveur et tes clients qui pourrait demander du boulot. Si tu envois des donnees X/Y par exemple, il va falloir ajouter a ton message un identifiant pour dire qui l'envoit. Si tu comptes envoyer d'autres donnees qui pourraient ressembler a des coordonnees X/Y mais sans en etre, il va aussi falloir ajouter qulequechose a l'envoi de tes donnees pour dire de quel type de donnees il s'agit, etc...
    Voila ce que je disais dans un autre sujet, ce qui rejoint tout a fait la reponse de Delbeke. Ce serait par contre peut etre preferable de creer des sujets specifiques pour des questions PRECISES. Ramdoulou a peut etre en tete de creer un MMORPG (ou quelquechose du style, je me souviens jamais du sigle ) mais il faudrait mieux decomposer les problemes un par un plutot que de tout mixer sinon ca va vite devenir ingerable.
    Pour VB6 : N'oubliez pas d'aller voir la FAQ et les Tutoriels
    Vous trouvez une reponse particulierement utile ? Votez pour !

  7. #7
    Membre régulier Avatar de Ramdoulou
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 286
    Points : 107
    Points
    107
    Par défaut
    Merci pour vos réponses

    Ben disons que ta solution Delbeke est bonne, mais ca risque de poser probleme pour ce que je travaille là...car un grand nombre de données sont échangées et ce tout le temps...
    Donc yaurait des problemes à un certains moment par exemple si des données sont entrées en meme temps, ca ferait des confusions pour récupérer par exemple les coordonnées ou le texte...

    Non vraiment ce qui me conviendrait le mieux c'est ce que j'ai pensé, le fait de faire un systeme de condition qui dit que si la données reçu est une valeure numérique à virgule, alors c'est une coordonnées et je fais ça, sinon, c'est un texte et je fais ça...

    Voilà, merci beaucoup !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Votre clavier comporte plus de 100 touches, pourquoi utiliser le langage SMS ?

  8. #8
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    Ben bon courage mais a mon avis tu vas droit dans le mur. Si plus tard tu realises que tu dois envoyer autre chose sous forme numerique mais qui ne soit pas des coordonnees, tu feras comment ? Et pour les chaines text tu vas bien mettre un "identifiant" ou "descripteur" ?
    Juste pour info, ce que decrit Delbeke est utilise de maniere repandue (standard NMEA par exemple dans mon domaine professionnel), ce n'est peut etre pas tout a fait un hasard...

    ca risque de poser probleme pour ce que je travaille là...car un grand nombre de données sont échangées
    C'est justement quand il y a un grand nombre de donnees differentes qu'il devient crucial de savoir a quoi correspond chacune d'entre elle.

    Tes donnees ne vont pas se melanger parce qu'il y en a beaucoup, ton serveur recoit des donnees de chaque client sur un controle Winsock different, si tu geres chacun d'entre eux proprement, y'a aucune raison de mixer les donnees entre elles.
    Pour VB6 : N'oubliez pas d'aller voir la FAQ et les Tutoriels
    Vous trouvez une reponse particulierement utile ? Votez pour !

  9. #9
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 535
    Points
    5 535
    Par défaut
    Citation Envoyé par Ramdoulou Voir le message
    Non vraiment ce qui me conviendrait le mieux c'est ce que j'ai pensé, le fait de faire un systeme de condition qui dit que si la données reçu est une valeure numérique à virgule, alors c'est une coordonnées et je fais ça, sinon, c'est un texte et je fais ça...
    Bonjour,

    Si ce n'est que celà (et je te laisse seul avec le reste - et ta responsabilité - , puisque tu sais où tu vas) voilà :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    toto = "234,5678"
     pos = InStr(toto, ",")
     Select Case pos
       Case 0, 1, Len(toto)
         MsgBox "pas sous forme ##...##,###"
       Case Else
         If Not toto Like String(pos - 1, "#") & "," & String(Len(toto) - pos, "#") Then
           MsgBox "pas sous forme ##...##,###...."
         End If
     End Select
    A toi de t'en servir, donc ...

    EDIT :
    et si tu t'en sers (et puisque tu as plusieurs chaînes à analyser), tu as au moins intérêt à faire une fonction ...

    Exemple :

    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
    18
    19
    20
    21
    22
    Private Sub Command5_Click()
     Dim toto As String
     toto = "234,5678"
     MsgBox toto & " ====>>> " & coucou(toto)
     toto = "23a4,5678"
     MsgBox toto & " ====>>> " & coucou(toto)
      toto = "abcd5678"
     MsgBox toto & " ====>>> " & coucou(toto)
    End Sub
     
    Private Function coucou(chaine As String) As Boolean
      coucou = True
      pos = InStr(chaine, ",")
      Select Case pos
       Case 0, 1, Len(chaine)
         coucou = False
       Case Else
         If Not chaine Like String(pos - 1, "#") & "," & String(Len(chaine) - pos, "#") Then
           coucou = False
         End If
     End Select
    End Function
    Maintenant : je trouve bien plus astucieuses les autres propositions qui t'ont été faites...
    Mais c'est ton chois, alors ... voilà.

  10. #10
    Membre régulier Avatar de Ramdoulou
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 286
    Points : 107
    Points
    107
    Par défaut
    Merci à vous tous, pour l'instant je me rend pas completement compte enfaite de tout ce que fait le controle winsock concernent mes données échangés, et bien entendu si vous le dites, le code Delbeke doit etre le plus approprié, donc voilà, je vais essayer avec son code, essayer de le comprendre, et de l'utiliser, et j'essayerai aussi le code que je cherchais.

    Voilà merci encore à vous tous pour l'aide que vous m'apportez ! =D
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Votre clavier comporte plus de 100 touches, pourquoi utiliser le langage SMS ?

  11. #11
    Membre régulier Avatar de Ramdoulou
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 286
    Points : 107
    Points
    107
    Par défaut
    C'est bon merci à tous =D
    J'ai réussi à adapter le code Delbeke qui marche à merveille (jme fixais des limites à moi-même...pas biiieeennn).

    Merci encore, et désolé d'être têtu concernant les méthodes à employer xDD
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Votre clavier comporte plus de 100 touches, pourquoi utiliser le langage SMS ?

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

Discussions similaires

  1. Problème synthaxe pour récuperer des liens (HTML)
    Par stansoad0108 dans le forum Langage
    Réponses: 3
    Dernier message: 25/04/2008, 16h37
  2. Réponses: 10
    Dernier message: 26/02/2008, 15h28
  3. [VB6]Comment faire pour récuperer des donnée sur un mp3 ou wav ?
    Par MegaBigBoss dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 13/06/2006, 16h08
  4. [Access et Delphi 5] Récuperer des coordonnées
    Par jouze dans le forum Bases de données
    Réponses: 2
    Dernier message: 06/03/2006, 10h55
  5. utiliser données texte pour faire des calculs
    Par sarah67 dans le forum Access
    Réponses: 20
    Dernier message: 06/02/2006, 14h09

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