VB.Net Si valeur Absente dans un Tableau

Résolu
cs_JeffC1977
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
- 6 nov. 2007 à 20:48
cs_JeffC1977
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
- 7 nov. 2007 à 17:03
Salut à tous

Je ne sais pas comment coder cela...

Si valeur du textbox est absente dans le tableau alors...

J'ai codé cela mais ça fonctionne que pour une ligne dans le Tableau...
Merci de votre aide

For

i = 0
To UBound(Tableau)
   LigneSplit = Tableau(i).Split(Separateur)

   If txtEfface.Text <> Tableau(i).Split(Separateur)(0)
Then
      MessageBox.Show(
"Point absent",
"Cogo iPaq",....
   End If

6 réponses

cs_Stephane33
Messages postés
630
Date d'inscription
samedi 15 février 2003
Statut
Modérateur
Dernière intervention
9 octobre 2011
1
7 nov. 2007 à 09:58
For



i = 0

To
UBound(Tableau) >>>>>>>>>> Sous entend que les données sont déja chargée dans ton tableau
   LigneSplit = Tableau(i).Split(Separateur)  >>>>>>> A quoi sert cette ligne


   If
txtEfface.Text <> Tableau(i).Split(Separateur)(0)

Then
      MessageBox.Show(
"Point absent",
"Cogo iPaq",....
   End If





et sinon
avec des données déjà chargées cela aussi devrait fonctionner

Dim flag as boolean = false

For i = 0 to Tableau.lenght - 1
  If

txtEfface.Text = Tableau(i).Split(Separateur)(0)  then
     flag = true
     exit for
  endif
Next i

If Not Flag then msgbox("Point Absent",Cogo iPaq",.......







Le savoir n'est que le filtre de l'experience
3
Baguauda
Messages postés
219
Date d'inscription
mercredi 31 août 2005
Statut
Membre
Dernière intervention
28 novembre 2008
1
7 nov. 2007 à 08:18
Si j'ai bien comprit ton problème
Dans ton code tu recherche la première ligne qui n'est pas dans ton tableau, alors que tu dois contrôler l'ensemble du tableau.
Je ne suis pas certain de la synthaxe vb mais ca devrais donner :

Dim found as boolean = false

For i = 0
To UBound(Tableau)

   LigneSplit = Tableau(i).Split(Separateur)

   If txtEfface.Text == Tableau(i).Split(Separateur)(0)
Then
      found := true

   End If
End For

if(!found)
Then
    MessageBox.Show(
"Point absent",
"Cogo iPaq",....
0
cs_JeffC1977
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
4
7 nov. 2007 à 13:20
Salut ....
Meric de votre aide  mais ca fonctionne pas vraiment...
Je réexplique en d'autre mots.

Voici mon fichier texte
11313 151,6005 -1820,9249 0,0000 50
11312 192,5143 -1841,3303 0,0000 50
17119 300,7254 136,5244 0 35

Donc mon Tableau contient cette même information
Chaque ligne = Point CoordY CoordX Altitude Code
Donc je me concentre sur le premier caractère de chaque ligne
Soit : 11313, 11312 et 17119

Si l'utilisateur veut effacer le point 17119 mais par erreur il inscrit dans le textbox le chiffre 18119
Je veux avoir un messagebox me disant que le point est absent dans le fichier.

Avec ce code.. il est certain qu'il passera pas la condition même si l'utilisatuer entrent le bon point.

Exemple l'utilisateur entre le nombre 18119
Absent deveint à True

Si l'utilisateur inscrit 17119 et bien Absent sera = à True car les deux premieres lignes du tableau ne contiennt pas la valeur 17119

Comprenez-vous ????

Merci de votre aide
Bye

For j = 0
To Tableau.Length - 1
   
If txtEfface.Text <> Tableau(j).Split(Separateur)(0)
Then
      Absent =
True
      Exit
For
   End
If
Next j
0
Baguauda
Messages postés
219
Date d'inscription
mercredi 31 août 2005
Statut
Membre
Dernière intervention
28 novembre 2008
1
7 nov. 2007 à 13:37
C'est pour cela que Stephane33 à ajouter l'instruction Exit For pour mettre fin à la boucle si l'élément est trouvé.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Stephane33
Messages postés
630
Date d'inscription
samedi 15 février 2003
Statut
Modérateur
Dernière intervention
9 octobre 2011
1
7 nov. 2007 à 14:32
Vi comme dit Baguauda, le flag par défaut est négatif
dans la boucle for, si on trouve la valeur, alors le flag passe à true et on sort de la boucle pour gagner du temps.
Après la boucle soit flag est à false ("If not flag" équivaut à  If Flag =False) alors message spécifiant l'absence du point soit il est à true et pas de message
Le savoir n'est que le filtre de l'experience
0
cs_JeffC1977
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
4
7 nov. 2007 à 17:03
Effectivement... mon dernier message fut inutile...

J'avais fini par comprendre...

Désolé je n'ai pas pu répondre avant...

Merci de votre aide...

très aprécié
0