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 :

différence entre 2 text


Sujet :

VB 6 et antérieur

  1. #1
    Membre éclairé
    Inscrit en
    Février 2007
    Messages
    327
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 327
    Par défaut différence entre 2 text
    salut tous le monde
    je veux recherche toute les partie comune entre 2text et les ajouter dans une listbox mais ca n'ajoute que la premier partie comune
    merci de votre aide





    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
    23
    Private Sub Command1_Click()
    x = 1
    y = 1
    Do While X1 = 0
    x = x + 1
    y = y + 1
        Do While X2 = 0
            a = Mid(Text1.Text, x - 1, x)
            b = Mid(Text2.Text, y - 1, y)
     
            If a = b Then
            x = x + 1
            y = y + 1
            Else
            List1.AddItem Mid(Text2.Text, x - 1, y - 1)
            X2 = 1
            End If
        Loop
    y = y + 1
    If y = Len(Text2.Text) Then X1 = 1
    Loop
     
    End Sub

  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
    Par défaut
    Ta question ressemble fort à celle que tu as posée hier, il y a juste à adapter un peu. Tu as eu 3 façons légèrement différentes pour trouver la première section commune entre 2 textes.
    Dans le principe, une fois trouvée une section commune, tu l'ajoutes à ta liste et tu retires cette section de tes chaines à comparer et tu relances la comparaison, etc... Là j'avoue que j'ai du mal à comprendre ton Mid(Text1.Text, x - 1, x)

    Utilises tu les points d'arrêt ou le mode débogage pour voir un peu ce que donne tes variables ?

  3. #3
    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
    Par défaut
    Bonjour,

    J'ai des difficultés à comprendre même ce que tu cherches à faire ...

    Je viens par exemple (pour tenter de deviner) de lancer ton code avec "Text1" écrit dans la Texbox Text1 et "Text2" écrit dans la Textbox Text2 ===>> j'obtiens "xt2" dans la listbox .

    Et je ne comprends alors pas ce que tu veux dire par :

    mais ca n'ajoute que la premier partie comune
    Si je saisis "voilà" dans text1 et "omi" dans text2 ===>> j'obtiens "o"
    Si je saisis dans text2 un mot plus long que dans Text1 ===>> boucle sans fin (bien évidemment )

    Nous allons donc essayer d'être avant tout clair :

    Supposons que tu saisisses "papotage" dans Text1 et que tu saisisses "toilettage" dans text2 :
    Que souhaiterais-tu exactement afficher dans ta listbox ?

    On y verra alors un peu plus clair sur ce que tu veux faire

  4. #4
    Membre éclairé
    Inscrit en
    Février 2007
    Messages
    327
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 327
    Par défaut diference entre 2 text
    salut tous le monde,

    voilla ce que je veux faire mais je ne sais pas comment faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    text1.text="abcdef"
    text2.text="xyzefg"
     
    list1
    abcd
     
    list2
    xyz
     
    list3
    ef
    list3 ce qui est cimun entre text1 et text2 list1 ce que il ya dans text1 et non text2 list2 ce que il ya dans text2 et non dans text1


    merci d'avence et j'espaire que c'est claire

  5. #5
    Membre éclairé
    Inscrit en
    Février 2007
    Messages
    327
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 327

  6. #6
    Membre éclairé
    Inscrit en
    Février 2007
    Messages
    327
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 327
    Par défaut
    voilla mais je ne sais pas quoi faire quand c'est different


    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
    Private Function Comp(a As String, b As String)
    Dim a1, b1 As String
     
        n1 = 1
        Do
        If Left(a, n1) = Left(b, n1) Then
        x = 0
        n1 = n1 + 1
        Else
        'quand c'est diferent
        x = 1
        End If
        If n1 > Len(a) Or n1 > Len(b) Then Exit Do
        Loop While x = 0
     
    c1.Text = Right(a, Len(a) - n1 + 1)
    c2.Text = Right(b, Len(b) - n1 + 1)
    List1.AddItem Left(a, n1 - 1)
    r = Comp(c1.Text,c2.text)

  7. #7
    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
    Par défaut
    Bon ....

    Mais ce n'est pas toi qui a fait cet effort-là (selon toute évidence) de joindre les deux discussions ...

    Il semble par ailleurs que ce soit un exercice imposé ...

    Dans ce cas, je ne vais pas te servir la soupe toute cuite mais te donner un exemple (où tout se trouve) et qu'il te faudra donc analyser puis modifier ...

    Ce petit projet nécessite 3 textboxes nommées Text1, Text2 et Text3 (la propriété multiline de text3 doit être égale à True)

    et un bouton de commande Command1

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Option Explicit
     
    Private Sub Command1_Click()
      Text1.Text = "bonjour"
      Text2.Text = "voilà"
      Dim mot1() As Byte, mot2() As Byte
      mot1() = StrConv(Text1.Text, vbFromUnicode)
      mot2() = StrConv(Text2.Text, vbFromUnicode)
      Dim maxi As Integer
      If Len(Text1.Text) >= Len(Text1.Text) Then
        maxi = Len(Text1.Text)
      Else
        maxi = Len(Text2.Text)
      End If
      Dim couic As Boolean, nb As Integer, i As Integer, du1 As String, du2 As String, toto As String
      nb = 1
      Text3.Text = "différences entre " & Text1.Text & " et " & Text2.Text & vbCrLf
      For i = 0 To maxi
        On Error Resume Next 'on ne peut l'éviter (hélàs) du fait qu'un mot peut être plus grand que l'autre ...
        If mot1(i) <> "" Then du1 = Chr(mot1(i)) Else du1 = ""
        If mot2(i) <> "" Then du2 = Chr(mot2(i)) Else du2 = ""
        If Not couic Then
         Select Case du1 & du2
           Case Is = du1
             toto = Text2.Text
             couic = True
           Case Is = du2
             toto = Text1.Text
             couic = True
         End Select
         If couic Then Text3.Text = Text3.Text & "caractère présente uniquement dans " & toto & vbCrLf
        End If
        If du1 <> du2 Then
         If Not couic Then
           Text3.Text = Text3.Text & "caractère " & nb & " disant " & du1 & " dans " & Text1.Text & " et " & du2 & " dans " & Text2.Text & vbCrLf
         Else
           Text3.Text = Text3.Text & "caractère " & nb & " disant " & du1 & du2 & vbCrLf
         End If
       End If
       nb = nb + 1
      Next
    End Sub
    Voilà ....
    Analyse calmement (c'est facile)...

    Bonne étude.

  8. #8
    Membre éclairé
    Inscrit en
    Février 2007
    Messages
    327
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 327
    Par défaut
    merci ucfoutu

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/06/2013, 11h40
  2. Différence entre 2 textes
    Par Akirex dans le forum Langage
    Réponses: 3
    Dernier message: 22/09/2009, 09h05
  3. Différence entre deux textes
    Par Oberown dans le forum Langage
    Réponses: 2
    Dernier message: 16/02/2006, 11h39
  4. Mise en évidence des différences entre 2 textes
    Par Dranor dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 19/07/2005, 22h53
  5. Réponses: 5
    Dernier message: 11/12/2002, 12h31

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