VB6 Lire un ListBox et mettre dans un TextBox en effacant les lignes vides

cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 - 23 mai 2007 à 22:30
cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 - 25 mai 2007 à 13:33
Salut...

J'ai un Listbox ayant bon nombre de ligne de texte.
Je lis ce Listbox pour remplir un TextBox (Édition sera possible dans le TextBox par l'utilisateur).

En lisant le ListBox, j'efface quelque information pour garder que les informtions importantes.
 Exemple:
ListBox:
PCode   Description           Point  Hauteur Horizontal   Vertical   Distance       Nord           Est          Pt#
                                               D°M'S"





STATION:                     T10606   1.69   H.I.






  1  :Visée arrière          T10607   1.3      0.00080   92.39420   144.623
121  :Maison                     T4   1.3     45.26160   93.02220    35.232   5095949.41420   287038.09488    T10609
121  :Maison                     T5   1.3     35.40220   93.50540    30.771   5095954.40339   287043.23423    T10610
 35  :*Sta. tige de fer        T6.1   1.3    357.40090   96.51450    21.304   5095970.57265   287053.53400    T10611





STATION:                       T6.1   1.69   H.I.






  1  :Visée arrière          T10606   1.3      0.00170   84.01160    21.420
 21  :BFT trouvé id.             T8   1.3      8.30220   83.20580    20.794   5095986.45722   287040.11782    T10613







Résultat voulu dans le TextBox...




5095949.41420   287038.09488    T10609
5095954.40339   287043.23423    T10610
5095970.57265   287053.53400    T10611


5095986.45722   287040.11782    T10613



MON PROBLÈME...

Je ne suis pas capable d'effacer les lignes vide du ListBox....
J'arrive à ce résultat:
5095949.41420   287038.09488    T10609
5095954.40339   287043.23423    T10610
5095970.57265   287053.53400    T10611

 

 

5095986.45722   287040.11782    T10613

J'ai donc 2 espaces en haut et 3 espaces entre le point T10611 et T10613

Voici mon code...
    Dim sBuffer As String
    Dim Compteur As Integer
    Dim TrimVariable As String
   
    For i = 0 To frmCogo.ListDataFinal.ListCount - 1
        If i <> 0 Then
            If Compteur > 22 Then
                sBuffer = sBuffer & vbNewLine
            End If
        End If
        If Compteur > 22 Then
           
            TrimVariable = Mid(sBuffer, 5, 2)
            If InStr(1, frmCogo.ListDataFinal.List(i), "Visée arrière") > 0 Or InStr(1, frmCogo.ListDataFinal.List(i), "STATION") > 0 Then
            'On fait Rien
            If IsEmpty(frmCogo.ListDataFinal.List(i)) then
               ????????????????
            End If
         Else
                    sBuffer = sBuffer & frmCogo.ListDataFinal.List(i)
                    frmCogo.txtExportation.Text = sBuffer
            End If
        End If
        Compteur = Compteur + 1

  Next i

J'ai essayé quelque truc avec le IsEmpty ou si frmCogo.ListDataFinal.List(i) = "" mais ca fonctionne pas...

J'attends de vos nouvelles

merci

3 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
23 mai 2007 à 22:53
Sans essayer (au hasard donc ) !
If   InStr(frmCogo.ListDataFinal.List(i), "Visée arrière") 0 and InStr(1, frmCogo.ListDataFinal.List(i), "STATION") _ 0 and  trim( frmCogo.ListDataFinal.List(i)) <> ""  Then
            sBuffer = sBuffer & frmCogo.ListDataFinal.List(i)
                    frmCogo.txtExportation.Text = sBuffer
end if
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
23 mai 2007 à 23:00
Bonsoir,
juste quelques annotations qui m' aideraient moi même à comprendre
et pour que je puisse suivre le raionnement :
For i = 0 To frmCogo.ListDataFinal.ListCount - 1
        If i <> 0 Then 
            If Compteur > 22 Then
                sBuffer = sBuffer & vbNewLine
            End If
        End If
      ...
       'deux fois le test sur Compteur >22
       'il suffit donc de commencer i à 1 pour exclure toute la partie d' 'en haut
       If Compteur > 22 Then
            TrimVariable = Mid(sBuffer, 5, 2)
            If InStr(1, frmCogo.ListDataFinal.List(i), "Visée arrière") > 0 Or InStr(1, frmCogo.ListDataFinal.List(i), "STATION") > 0 Then
                'On fait Rien
                ' c' est pas que tu ne fait rien mais tu continues ...
          
               If IsEmpty(frmCogo.ListDataFinal.List(i)) then
                   ????????????????
                  'traites plutôt Not IsEmpty pour qu' le cas de la ligne vide
                  'te renvoie vers Compteur=Compteur+1 et reboucle
               End If
        
            Else
                    sBuffer = sBuffer & frmCogo.ListDataFinal.List(i)
                    frmCogo.txtExportation.Text = sBuffer
            End If
      
         'manque le cas ou Compteur<=22 !
      
      End If
       
       Compteur = Compteur + 1


  Next i




0
cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 4
25 mai 2007 à 13:33
Salut vous deux...

Je viens de refaire un Post sur le Forum....

Je veux faire la meme  chsoe mais différemment....

Merci de votre aide et peut etre que le post que je viens d'envoyer sera plus calit et/ou plus facile à régler... Pour ma part je ne trouve pas la solution...

merci
0
Rejoignez-nous