Object required

SOKS33 Messages postés 8 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 2 mai 2011 - 13 avril 2011 à 17:42
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 - 13 avril 2011 à 21:12
Bonjour,
Je suis actuellement en début de stage en entreprise et j'ai un projet en VBS, langage avec lequel je ne suis pas du tout familier !

Ce que j'aimerai faire dans la partie de mon application qui plante, c'est, a partir d'un string, en extraire les mots, pour pouvoir ensuite les traiter.

J'ai donc le code suivant pour decouper en mots :

s : string
tmot : valeur de retour, qui est donc normalement un array de string, et qui contient les mots que je veux traiter grace a Split

tmot = Split(s," ")
for i=0 to UBound(tmot)
document.write(tmot(i) & "
")
next

Ceci marche bien !
Par contre, si je veux traiter mes mots, je dois les stocker et la ...

tmot = Split(s," ")
for i=0 to UBound(tmot)
Set z = tmot(i) ' On stocke le mot
if z.len > 5 Then ' Si le mot est assez grand
document.write(tmot(i) & "
")
End If
next

et j'ai une erreur sur la ligne "Set z= tmot(i)" de type Object Required pour tmot(i).
il est bien initalise pourtant puisaue je l'affiche sans probleme ...

Le probleme ne vient pas de la boucle, puisque j'ai aussi essaye avec un for each .

Merci de bien vouloir m'aider !

PS : Desole pour les accents ou autres possibles "q" a la place de "a" ... le clavier qwerty est assez deroutant quand on s'en sert depuis 3 jours

4 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
13 avril 2011 à 19:15
Bonjour,

Et sans le Set ?

Mon site
0
SOKS33 Messages postés 8 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 2 mai 2011
13 avril 2011 à 19:20
j'ai oublié de preciser cela justement ... lorsaue je le sors, l'erreur est a la ligne suivante , meme erreur mais avec z ...
Object Required aussi donc
0
SOKS33 Messages postés 8 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 2 mai 2011
13 avril 2011 à 19:23
raaaaaaaaaaaaaaaah !
probleme resolu ....

z.len implique que z est un objet , Len(z) fonctionne bien mieux ... ;)


Merci de ton aide !
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
13 avril 2011 à 21:12
 Bonsoir


z correspond à un dictionnaire

Exemple d'utilisation:

s = "Si le mot est assez grand, le  mot sera " & _
    "      indexé    dans un dictionnaire"
k = 1
set objDico = CreateObject("Scripting.Dictionary")
tmot = Split(s," ")

for i=0 to UBound(tmot)
   If Len(tmot(i)) > 0 Then objDico.Add k, tmot(i) : k=k+1
next 

For Each strDicoKey in objDico.Keys
    MyKeys = MyKeys & strDicoKey & vbTab& objDico.Item(strDicoKey) & vbcr
Next
MsgBox MyKeys,,"MyKeys & MyItems"

MsgBox Join(objDico.Keys,vbCrLf),,"MyKeys"

For j=1 To objDico.Count
    strDico = strDico & vbcrlf & objDico(j)
Next
MsgBox strDico,,"MyItems"

MsgBox Join(objDico.Items,vbCrLf),,"objDico Items"

'l'objet Dictionary décline
'les méthodes 
'Add
'Exists
'Items
'Keys
'Remove
'RemoveAll
'et les propriétés 
'Count
'Item
'Key

'Les méthodes Keys et Items  s'apparentent à un tableau et donc 
'ont accès aux fonctions Join, Filter etc ...




jean-marc
0
Rejoignez-nous