Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
950 connectés 

  FORUM HardWare.fr
  Programmation

  VB : HELP SUR LES BOUCLES

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

VB : HELP SUR LES BOUCLES

n°21186
fabd
Posté le 28-03-2001 à 22:20:25  profilanswer
 

Mon probleme, il veut pas prendre en consideration le text(i).text
 
For i = 1 To 15
If Len(Text(i).text) = 0 Then
    verif_champ = False
Else
    verif_champ = True
End If
Next i
 
 
HELP

mood
Publicité
Posté le 28-03-2001 à 22:20:25  profilanswer
 

n°21243
Lord II
PIB2000
Posté le 29-03-2001 à 09:56:50  profilanswer
 

Le code marche mais c'est peut etre autour que ca ne marche pas.
 
A quoi sert la variable verif_champ ??


---------------
La bave du crapaud n'empèche pas la caravane de passer .
n°21246
RalphXML
Posté le 29-03-2001 à 10:04:05  profilanswer
 

Salut,
 
Attention quand meme, tu ecrase la valeur de verif champ a chaque passage. Est-ce normal.
 
A+

n°21258
Bendes
Posté le 29-03-2001 à 11:12:44  profilanswer
 

For i = 1 To 15  
 verif_champ = Iif(Len(Text(i).text) = 0, False, True)
Next i

n°21265
thegti
La constipation se soigne ...
Posté le 29-03-2001 à 11:37:02  profilanswer
 

Bendes> je vois pas la différence, je préfères même la première version, car y'a pas évaluation des expressions contenues dans la fonction Iif
 
Text(i), c'est quoi ? une variable objet ?  
Tu devrais l'appeler autrement je pense

n°21366
fabd
Posté le 29-03-2001 à 16:42:45  profilanswer
 

OLALAL :(
 
Vous etes pire ke moi :lol:
 
text(i) c'est la zone de text. Et quand je boucle dessus, ca me m'evite de me taper text1.text ... text15.text

n°21368
thegti
La constipation se soigne ...
Posté le 29-03-2001 à 17:28:03  profilanswer
 

euh
moi pas bien comprendre :)
 
Toi dire: "text(i) c'est la zone de text"
 
Tu as donc un objet de type textbox que tu as nommé text(i) ?
 
Aaahhh c'est bizarre non ? Ce serait pas plutot un tableau d'objets de type textbox ?
 
Et moi ce que je disait c'est que "text" est un mot réservé en VB, donc ne pas n'utiliser pour nommé les variables ou les objets

n°21382
fabd
Posté le 29-03-2001 à 18:04:54  profilanswer
 

Me suis mal exprimé  :sarcastic:  
 
Mais ca marche tjrs pas :(

n°21498
Waybee
Posté le 30-03-2001 à 12:54:19  profilanswer
 

La syntaxe text(i).text, ne marche que si tu as créer un groupe de texte avec le même nom.
 
Je m'explique :
Tu insères une zone de texte, puis tu fais un copier/coller, à la question voulez-vous créer un groupe, tu réponds oui.
 
De cette manière là, tu pourras utiliser leurs index respectifs pour obtenir la valeur.

n°21529
fabd
Posté le 30-03-2001 à 16:11:20  profilanswer
 

OK merci

mood
Publicité
Posté le 30-03-2001 à 16:11:20  profilanswer
 

n°21537
Bendes
Posté le 30-03-2001 à 16:39:02  profilanswer
 

Qd tu mets text(i), ça coule de source que c un groupe de texte box ki porte le même nom et qui sont indexé...Et non le nom de l'objet en question...
 
Pour thegti :
 
La fonction 'Iif' est très pratique lorsque tu fais des if..then..else pour ne changer la valeur que d'une variable ou autre...Y a moins a écrire!
 
syntaxe : Toto = Iif(i = 1,"Bonjour", "Aurevoir" )
 
si i = 1 alors Toto = "Bonjour" sinon Toto = "Aurevoir"

n°21549
thegti
La constipation se soigne ...
Posté le 30-03-2001 à 17:29:12  profilanswer
 

Oui mais:
1) il y a évaluation des expressions paramètres de la fonction
Par exemple, si on a:
y=Iif(x=5,6,x+7)
et x=5
et ben le calcul x+7 sera effectué
ce qui n'est pas le cas avec un if
Le code s'en trouve alourdi
 
2)Même dans un cas simple comme le tien :
Toto = Iif(i = 1,"Bonjour", "Aurevoir" )  
il y a des passages de paramètres à une fonction et la encore ca alourdi le code
 
Personnellement, j'ai pas testé mais le code avec un Iif doit s'éxécuter bien plus lentement que un If classique
Maintenant c'est vrai que y'a un confort d'utilisation :)

n°21572
BifaceMcLe​OD
The HighGlandeur
Posté le 30-03-2001 à 21:35:01  profilanswer
 

thegti a écrit a écrit :

Personnellement, j'ai pas testé mais le code avec un Iif doit s'éxécuter bien plus lentement que un If classique
Maintenant c'est vrai que y'a un confort d'utilisation :)




Traditionnellement, dans un language compilé, c'est l'inverse : l'opérateur ternaire (Iif en VB, ( ? : ) en C/C++/Java) permet de générer un code objet plus rapide et plus compact qu'un if classique. Sinon, on ne l'aurait pas inventé...
 
Au passage, il n'y a pas besoin du Iif ici. Comme la valeur retournée par le Iif est un booléen, on peut directement écrire :
For i = 1 To 15  
    verif_champ = (Len(Text(i).text) != 0)  
Next i  
 
Ce qui a l'avantage de la lisibilité et de la compacité.

n°21585
thegti
La constipation se soigne ...
Posté le 31-03-2001 à 01:02:03  profilanswer
 

Ayant fait un peu de compilation pendant mes études,
le If classique est traduit en langage machine par des branchements simples
Et la qu'en tu dis que iif génère un code plus rapide, je vois pas comment en langage machine, on peut faire du conditionnel qui s'éxécute plus rapide
Au passage, je vois pas ce que tu veux dire par génèrer du code objet pour du VB ?

n°21587
verdy_p
Posté le 31-03-2001 à 01:39:54  profilanswer
 

Je ne sais pas ce qu'il en est du groupe de texte créé par VB. Maisil me semble que si à la question "voulez-vous créer un groupe ?" lors du copier-coller, vous répondez oui, cela veut dire que l'objet Text ne désigne plus la zone de texte mais le groupe. Dans ce cas il faut accéder aux objets contenus dans le groupe, et cela n'exclue pas que ceux-ci doivent maintenant être nommés, ou bien être accéder par leur indice d'objet.
Hors les indices d'objets sont globaux pour toute la feuille, et donc un groupe peut très bien avoir des objets dont les indices ne sont pas tous de 1 à N.
Du coup en utilisant Text(i) on ne pointe pas forcément sur la textbox attendue, mais peut-être arfois sur rien du tout. Et on a une erreur au moment où on veut accéder à l'attribut text de Text(i) puisque Text(i) n'est pas un objet...
Le seul moyen est donc de nommer explicitement les textbox du groupe.
 
C'est ce qu'on fait en JavaScript, où nomme couramment les champs <INPUT> en spécifiant leur ID par exemple:
<INPUT type="text" id="text1" value="">
<INPUT type="text" id="text2" value="">
<INPUT type="text" id="text3" value="">
<INPUT type="text" id="text4" value="">
 
Et on peut accéder aux valeurs des textbox ainsi:
<SCRIPT type="JavaScript">
function go() {
  for(var i=1; i<=4; i++) {
    if (eval("document.text"+i).value="" )
       return false;
  }
  return true;
}
</SCRIPT>
 
Pourquoi faire encore du VB aujourd'hui alors que JavaScript est standardisé et multiplateforme et peut faire exactement la même chose avec du HTML au lieu de ressources VB ?
 
Et puis le développement en JavaScript peut se faire avec Office directement, sans acheter Visual Basic (si on veut utiliser MSDE pour produire un fichier .CHM avec le HTML compiler, ou pour utiliser les classes ActiveX avec le navigateur d'objets), voire même avec juste le navigateur Web et un éditeur de texte et MsPaint fournis gratuitement avec Windows, ou gratuitement aussi sous Linux en se passant même des ActiveX... (Avec déploiement possible de l'application sur le Web au lieu du PC Windows traditionnel)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  VB : HELP SUR LES BOUCLES

 

Sujets relatifs
help: javance pôDreamweaver 4 ----> help svp
Interbase + PHP4 mes queries me retournent des dyn SQL errors HELP MEMySql, help
[BATCH] Commandes DOS pour lire dans 1 fichier HELP !!!HELP je recherche le script CGI (GWo_ANNURECHERCHE)
[BATCH] pour recuperer son IP [HELP][CGI] Création de log (help)
[Access et VB] Je veux creer un replica partiel d'une base, help !!!VISUAL C++ et W2000 totalement instables HELP
Plus de sujets relatifs à : VB : HELP SUR LES BOUCLES


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)