[R] "Variable must be of type "Object".

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
JohnWayne
Niveau 4
Niveau 4
Messages : 68
Enregistré le : mer. 24 mars 2010 17:48
Status : Hors ligne

[R] "Variable must be of type "Object".

#1

Message par JohnWayne »

Bonsoir,

Sur ce code

Code : Tout sélectionner

#include<Array.au3>
#include<FileListToArrayXT.au3>

$Array = _FileListToArrayXT (@DesktopDir, "Gmer.zip","Testeur.zip", 0, 2, True,"Temp")
For $i in $Array
          FileWriteLine ( @HomeDrive & "\Report.txt", $i & " trouvé!" & @CRLF )
next
J'ai le message suivant : "Variable must be of type "Object".

Que veut dire ce message ? Y a t-il une erreur ?

Merci,

JW

Edit: Bon finalement sa marche pas, c'est très bizarre : je fais deux test tout est OK j'en fait un 3 iem et j'ai le message d'erreur. Je suis prêt a faire un chèque plus que généreux à celui-ci qui trouve la solution :D ( j'deconne hein ! )
Modifié en dernier par JohnWayne le sam. 12 juin 2010 10:42, modifié 1 fois.
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [...] "Variable must be of type "Object".

#2

Message par matwachich »

C'est la syntaxe de la fonction qui n'est pas bonne!
Je suis SURE que tu n'as pas bien lu la description!!!
http://www.autoitscript.fr/forum/viewto ... 484#p20484

Puisque je suis gentille, un indice: c'est les 2e et 3e paramètres qui posent problème
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
JohnWayne
Niveau 4
Niveau 4
Messages : 68
Enregistré le : mer. 24 mars 2010 17:48
Status : Hors ligne

Re: [...] "Variable must be of type "Object".

#3

Message par JohnWayne »

Salut

Je viens de remarquer la boulette que j'ai fait ^^ Par contre peux tu m'expliquer pourquoi quand je met

Code : Tout sélectionner

#include<Array.au3>
#include<FileListToArrayXT.au3>

$Array = _FileListToArrayXT (@DesktopDir, "[b]*.exe[/b]", 0, 2, True,"Temp")
For $i in $Array
          FileWriteLine ( @HomeDrive & "\Report.txt", $i & " trouvé!" & @CRLF )
next
cela marche mais si je met un nom précis tel que test.exe ( donc le code est exactement le même sauf que au lieu de *.exe il y a test.exe ) cela me met le message d'erreur ? C'est sa enfaite que je ne comprends pas.

Merci encore !

A+

JW
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [...] "Variable must be of type "Object".

#4

Message par matwachich »

Alors la je ne sait koi repondre!

j'ai essayé ca:

Code : Tout sélectionner

#include <perso\filelisttoarrayxt.au3>
#include <array.au3>

$array = _filelisttoarrayXT(@DesktopDir, "test.exe", 0, 2, True,"Temp")

_ArrayDisplay($array)
et ca marche tres bien
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [...] "Variable must be of type "Object".

#5

Message par matwachich »

Hey! mais au fait je vien de relire ton code plus précisement!

J'ai remarqué qu'en faisant " For $i In $Array " j'avait pas une erreur mais des résultats bizars (je n'utilise jamais de For ... In)

Fais plutot ca:

Code : Tout sélectionner

For $i = 1 to $array[0] ; Le nombre de résultats est stocké dans le premier élément de ton array
...
Next
Ou encor mieu:

Code : Tout sélectionner

#include <perso\filelisttoarrayxt.au3>
#include <file.au3>

$array = _filelisttoarrayXT(@DesktopDir, "test.exe", 0, 2, True,"Temp")

_FileWriteFromArray($File, $array)
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
JohnWayne
Niveau 4
Niveau 4
Messages : 68
Enregistré le : mer. 24 mars 2010 17:48
Status : Hors ligne

Re: [...] "Variable must be of type "Object".

#6

Message par JohnWayne »

Salut matwachich

merci de m'aider pour ce problème. J'ai donc testé ce code

Code : Tout sélectionner

#include <filelisttoarrayxt.au3>
#include <file.au3>

$array = _filelisttoarrayXT(@DesktopDir, "test.exe", 0, 2, True,"Temp")

_FileWriteFromArray($File, $array)
Résultat :
C:\Documents and Settings\Propriétaire\Bureau\FileListXT.au3(17,26) : WARNING: $File: possibly used before declaration.
_FileWriteFromArray($File,
~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Documents and Settings\Propriétaire\Bureau\FileListXT.au3(17,26) : ERROR: $File: undeclared global variable.
_FileWriteFromArray($File,
~~~~~~~~~~~~~~~~~~~~~~~~~^

Qu'es ce que j'aurais loupé ? De plus que es ce que les résultats seront retranscris sur le fichier C:\Report.txt avec la fonction _FileWriteFromArray ?

Merci,

++

JW
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [...] "Variable must be of type "Object".

#7

Message par matwachich »

Ok! ca se voit que t'es nouveau dans autoit!!! (sans préjugé!)

Alors:

Quand tu passe une variable à une fonction, elle doit être déclarer, sinon bah en gros tu lui passe du pipo!
Je ne sais pas quel est ton niveau d'anglais, mais si tu lis bien le message d'erreur:

Code : Tout sélectionner

ERROR: $File: undeclared global variable.
- Il te dis clairement que la variable $file n'est pas déclarer/définie

Alors la, je vais te donné un bon conceil: la solution est toujours dans le problème (comprendre les méssages d'erreur) et dans F1!!!! (l'aide!)

Si on regarde l'aide de la fonction _FileWriteFromArray

Code : Tout sélectionner

Parameters

$File String path of the file to write to, or a file handle returned from FileOpen(). 
$a_Array The array to be written to the file. 
 
Donc $File dois être égale au 'chemin du fichier ou on veut ecrire' ou bien à un 'handle de fichier retourné par la fonction FileOpen()'

Et la normalement, la solution coule de source!

Je ne vais pas te la donné directement!!! (faut bien que tu te casse un peut la tête sinon, tu n'apprendra rien!)

Solution (ne clique pas direct!)
► Afficher le texte
Voila! normalement avec ca, c'est le R assuré!
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
JohnWayne
Niveau 4
Niveau 4
Messages : 68
Enregistré le : mer. 24 mars 2010 17:48
Status : Hors ligne

Re: [...] "Variable must be of type "Object".

#8

Message par JohnWayne »

Merci matawich, tu a raison c'est un R garanti !!

Merci encore !

A+
Répondre