[R] Ajouter un test d'erreur

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

[R] Ajouter un test d'erreur

#1

Message par pierrotm777 »

Dans un script , j'ai une fonction qui test la présence de trois fichiers différents .
Seulement, si le fichier choisi n'éxiste pas , autoit me retourne une erreur que je ne sais pas gérer.

'Array variable subscript badly formatted.'
► Afficher le texte
Merci de votre aide
Modifié en dernier par pierrotm777 le mar. 23 nov. 2010 12:42, modifié 1 fois.
Avatar du membre
zeshrek
Niveau 10
Niveau 10
Messages : 984
Enregistré le : mer. 17 nov. 2010 09:31
Localisation : Sur ma chaise
Status : Hors ligne

Re: [..] Ajouter un test d'erreur

#2

Message par zeshrek »

Tu n'as pas mis de gestion d'erreur a l'ouverture de tes fichiers
Là ca devrait aller mieux :
► Afficher le texte
Modifié en dernier par zeshrek le mar. 23 nov. 2010 12:19, modifié 1 fois.
Si vis pacem para bellum
Avatar du membre
Yogui
Niveau 9
Niveau 9
Messages : 689
Enregistré le : ven. 18 avr. 2008 17:29
Status : Hors ligne

Re: [..] Ajouter un test d'erreur

#3

Message par Yogui »

Bonjour,

Vous n'avez mis que la fonction je ne peux donc pas savoir si vous tester la présence des fichiers.

Si vous ne la testez pas commencer par une condition avec fileexists()

Code : Tout sélectionner

If FileExists("C:\autoexec.bat") Then
    MsgBox(4096, "C:\autoexec.bat File", "Exists") ; votre fonction
Else
    MsgBox(4096,"C:\autoexec.bat File", "Does NOT exists") ; un message indiquant que le fichier n'est pas présent
EndIf
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Ajouter un test d'erreur

#4

Message par pierrotm777 »

C'est parfait, merci encore à tous les deux
Avatar du membre
bloodwolff
Membre émérite
Membre émérite
Messages : 655
Enregistré le : ven. 18 avr. 2008 22:36
Localisation : Québec
Status : Hors ligne

Re: [R] Ajouter un test d'erreur

#5

Message par bloodwolff »

En un peu plus court si tu veux
► Afficher le texte
Modifié en dernier par bloodwolff le mar. 23 nov. 2010 22:50, modifié 1 fois.
Compte skype : bloodwolfff
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Ajouter un test d'erreur

#6

Message par pierrotm777 »

J'ai ajouté aprés le message la création d'un dossier puis du fichier ainsi:
► Afficher le texte
Effectivement, return me convient mieux !
alex1205
Niveau 5
Niveau 5
Messages : 123
Enregistré le : dim. 07 mars 2010 13:59
Status : Hors ligne

Re: [R] Ajouter un test d'erreur

#7

Message par alex1205 »

Regarde :

Code : Tout sélectionner

Func _getMot($difficulte)

    Local $file = 0
    Local $nbr_mots
        $nom = "dico" & $difficulte ;~ & ".ext"
        $file = FileOpen($nom)
        If $file = -1 Then
            MsgBox(0, "Erreur", "Fichier inexistant ou illisible")
            ;~ SetError(1) pour gérer les erreurs si tu veux
            Return ;~ Return plus approprié qu'un exit je pense
        EndIf
        $nbr_mots = _FileCountLines($nom)

    Local $pos_mot = Random(1, $nbr_mots[color=#FF0000][0][/color], 1)
    Local $mot = FileReadLine($file, $pos_mot)
    FileClose($file)

    Return $mot
EndFunc   ;==>_getMot
Il faut mettre [0] pour l'array !
Le "je ne sais pas" et "j'y arrive pas" n'existe dans mon vocabulaire. Toutes Questions ont une réponse, cherchez et vous la trouverai. Utilisez Recherche du forum et vous verrez. Si [blink]Aucune[/blink] question ne tient à votre problème, créez un sujet.
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Ajouter un test d'erreur

#8

Message par pierrotm777 »

Pourquoi faut-il ajouter [0] ? :?
La fonction semble fonctionner sans !
Avatar du membre
bloodwolff
Membre émérite
Membre émérite
Messages : 655
Enregistré le : ven. 18 avr. 2008 22:36
Localisation : Québec
Status : Hors ligne

Re: [R] Ajouter un test d'erreur

#9

Message par bloodwolff »

Tu te goure avec ton [0] !
Va lire l'aide il n'en a nul besoin
Sinon voilà encore plus court et qui utilise le même udf

Code : Tout sélectionner

Func _getMot($difficulte)
    Dim $nbr_mots
    If Not _FileReadToArray("dico" & $difficulte ,$nbr_mots) Then
        MsgBox(0, "Erreur", "Fichier inexistant ou illisible")
        ;~ SetError(1) pour gérer les erreurs si tu veux
        Return ;~ Return plus approprié qu'un exit je pense
    EndIf
    Return $nbr_mots[Random(1, $nbr_mots[0], 1)]
EndFunc   ;==>_getMot
Compte skype : bloodwolfff
Répondre