begin process at 2012 02 17 05:35:03
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

Texte

 > 

Petit prob de test if


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Petit prob de test if

lundi 22 novembre 2004 à 10:09:51 | Petit prob de test if

Sigma

Hello all.

Voila j'ai codé ceci :

Dim pass As String
Dim test As Integer

pass = txtQuality.Text
i = 0


Do While Not i = Len(pass)
test = Asc("Mid(pass, i, 1)")
If (InStr(sSpecial, Chr$(test) <> 0)) Then quality = quality + 600


sSpecial est déclarer comme ceci : " Private Const sSpecial = "+-_()*%!?[]{}/\@<>=&$£" "

Mon problème, est que quant il tombe sur le test if, il me fait l'erreur suivante : "type incompatible". Et si j'enleve le $ du chr$(test), il me met pas d'erreur, mais fait que le test est toujours validé.

Merci de me donner une piste si vous en trouvez. ;)

Si jamais, ce bout de code a rapport avec le développement de mon programme de générateur de mot de passe aléatoire (http://www.vbfrance.com/code.aspx?ID=27469).

Bonne journée
lundi 22 novembre 2004 à 10:31:17 | Re : Petit prob de test if

jrivet

Membre Club
Salut,

petite precision STP , tu peux donner un exemple de ce que tu mets dans txtquality

@+
Julien
-----------------------------------------------------------
Essai ca sinon on trouvera autre chose
-----------------------------------------------------------
lundi 22 novembre 2004 à 10:38:02 | Re : Petit prob de test if

frop01

Membre Club
salut

l'erreur apparait suite à une mauvaise utilisation de la fonction Instr.




Renvoie une valeur de type Variant (Long) indiquant la position de la première occurrence d'une chaîne à l'intérieur d'une autre chaîne.

Syntaxe

InStr([start, ]string1, string2[, compare])

La syntaxe de la fonction InStr comprend lesarguments suivants :

Élément Description
start Facultatif.Expression numérique qui définit la position de départ de chaque recherche. Si cet argument est omis, la recherche commence au premier caractère. Si l'argument start contient une valeur de typeNull, une erreur se produit. L'argument start est obligatoire si l'argument compare est indiqué.
string1 Expression de chaîne dans laquelle la recherche est effectuée.
string2 Expression de chaîne recherchée.
compare Facultatif. Indique le type decomparaison de chaînes. Si l'argument compare est de type Null, une erreur se produit. Si l'argument compare est omis, la valeur de l'instruction Option Compare détermine le type de comparaison.


Valeurs

L'argument compare peut prendre les valeurs suivantes :

Constante Valeur Description
vbUseCompareOption -1 Effectue une comparaison à l'aide de la valeur de l'instruction Option Compare.
vbBinaryCompare 0 Effectue une comparaison binaire.
vbTextCompare 1 Effectue une comparaison textuelle.
vbDatabaseCompare 2 Réservée à Microsoft Access. Effectue une comparaison basée sur les informations de votre base de données.


Valeurs renvoyées

Si La fonction InStr renvoie
string1 est de longueur nulle 0
string1 est de type Null Null
string2 est de longueur nulle start
string2 est de type Null Null
string2 est introuvable 0
string2 est trouvée à l'intérieur de string1 Position à laquelle la chaîne est trouvée
start > string2 0


Remarques

La fonction InStrB est utilisée pour traiter sous forme d'octets les données d'une chaîne. Au lieu de renvoyer la position de caractère de la première occurrence d'une chaîne dans une autre, la fonction InStrB renvoie la position de l'octet.





MSN YAHOO

Membre du club CodeS-SourceS
lundi 22 novembre 2004 à 10:42:49 | Re : Petit prob de test if

jrivet

Membre Club
Salut,

Il y a 2 lignes qui me tracasse un peu:

-
test = Asc("Mid(pass, i, 1)")
cette ligne te retourne a chaque boucle la valeur ascii de M -> essaie de quitter les guillemets si tu veux que ta boucle prenne pass caractere par caractere.

-
... (InStr(sSpecial, Chr$(test) <> 0))
definition de Instr: Instr([depart], [chaine1], [chaine2]) si toio tu veux pas preciser le depart met 1 :
(InStr(1,sSpecial, Chr$(test)) <> 0)
(note: je crois que les parentheses sont mal placee)

alors si j ai bien compris tu veux prendre chaque caracteres de pass et regarder si ce caractere est dans sSpecial.

essaie ca

For i = 1 To Len(pass)
test = Asc(Mid(pass, i, 1))
If (InStr(1, sSpecial, Chr(test)) <> 0) Then quality = quality + 600
Next


NOTE: pourquoi faire text = asc(x) pour faire la ligne suivante chr(test) ?
@+
Julien
-----------------------------------------------------------
Essai ca sinon on trouvera autre chose
-----------------------------------------------------------
lundi 22 novembre 2004 à 10:47:38 | Re : Petit prob de test if

bouv

Membre Club
Salut Sigma

Envoi moi ta source je jetterai un oeil car la il manque un peu d'info.
Mon email au cas ou tu ne l'a plus :

bouvetdavid@hotmail.com

Bonne prog
++
lundi 22 novembre 2004 à 11:13:37 | Re : Petit prob de test if

Sigma

Merci pour vos réponses qui sont rapides !

Alors suite au message de frop1, j'ai aussi trouver comme toi jrivet :
(InStr(1,sSpecial, Chr$(test)) <> 0)


Mais cela ne résout pas le problème.

Sinon, pour ta question jrivet "NOTE: pourquoi faire text = asc(x) pour faire la ligne suivante chr(test) ? " Je me suis simplement dis que peut etre cela aiderai. On pourrais simplifier le code comme ceci :

If (InStr(1, sSpecial, "Mid(pass, i, 1)") <> 0) Then quality = quality + 600


Mais sa ne résout tjs pas le problème.


En faisant d'autres tests, j'en suis arriver a :


Dim pass, test2 As String
Dim test As Long

pass = txtQuality.Text
i = 1

test2 = Mid(pass, i, 1)
i = 0
Do While Not i = Len(pass)

test = Asc(test2)
If (InStr(1, sSpecial, Chr$(test)) <> 0) Then quality = quality + 600
i = i + 1
test2 = Mid(pass, i, 1)
Loop




Cela fonctionne, mais sa me semble tellement pas optimisé.... :S
lundi 22 novembre 2004 à 11:16:25 | Re : Petit prob de test if

jrivet

Membre Club
Réponse acceptée !
Re,

as tu essayer ce que j avais mis (qui fonctionne si je ne me trompe pas)

For i = 1 To Len(pass)
test = Asc(Mid(pass, i, 1))
If (InStr(1, sSpecial, Chr(test)) <> 0) Then quality = quality + 600
Next

@+
Julien
-----------------------------------------------------------
Essai ca sinon on trouvera autre chose
-----------------------------------------------------------
lundi 22 novembre 2004 à 11:27:55 | Re : Petit prob de test if

Sigma

jrivet > Tu a raison, ton code fonctionne, désolé, j'avais pas vu que t'avais mis un for a la place d'un while, j'avais donc pas tout recopier.

Merci bien pour ton aide, et merci aux autres ! :)

Guettez la prochaine version de mon logiciel ;)


Cette discussion est classée dans : test, pass, chr, sspecial, quality


Répondre à ce message

Sujets en rapport avec ce message

[VB]Prob retour chariot dans Txtbox [ par PnyX ] bonjour bonjour, je suis en train de me prendre la tete depuis facil 3 heures sur "comment insérer un retour chariot dans une textbox"! J'ai effectué MSFLEXGRID [ par sanndr ] Bonjour à tous!J'utilise un msflexgrid dans mon prog, que je charge dans le form_load via une basse access et lorsque je rentre une nouvelle donnée vi test sur le textbox [ par bgm2 ] Salut tout le monde;Je veux savoir comment agir sur le textbox pour qu'on ne peut écrire que seulement 4 chiffres.Merci BGM update impossible à le faire marcher... [ par shaka38 ] voila j'ai une table "test", je voudrais modifier une donner, mais impossible...le code actuel : Private Sub Command1_Click()Set db = OpenDatabase("bd Problème de test-ping avec boucle infinie [ par mcleod06 ] Voila j'effectue des test ping avec l'API  "IcmpSendEcho" pour savoir si la connection est toujours maintenue, le probleme c'est que j'aimerais en fai enregistrer et lire dans la bdr [ par AsselusBorealiss ] Salut a tous Zer toutesj'ai un pb avec le code suivant ( pour enregister et lire dans la base de registre )donc  pour enregistrer ca marche ( avec une test bande passante [ par soumamanel ] svp j'ai besion d'aide,  je suis entrain de faire un test sur la bande passante d'une connexion Internet et je cherche comment on peut utiliser un bou script vbs qui test les disques dur monté [ par mims1664 ] bonjour, j'aimerais effectuer un script qui au démarrage de la machine test si les lecteurs reseaux sont monté ou pas ! par contre je n'ai rien trouvé test de processeur amd et Intel [ par le5ejumeau ] bonjour à tousje voudrais faire un test Cpu pour amd et pentium mais je ne voudrais pas favoriser l'une ou l'autre des marques pour l'instant je vais test cellule [ par dominic67 ] Bonjour Je suis novice en Visual Basic, je cherche une fonction ou une macro me permettant de teste un groupe de cellules qui sont renseignées au fur


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,806 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales