Page 1 sur 1

[..] XML et AutoIT

Posté : lun. 29 juil. 2013 15:40
par shiirosan
Bonjour/Bonsoirs, nouveau problème sur AutoIT pour ma part. Cette fois-ci, j'essaye de faire pour que mon script AutoIT lise les lignes d'un XML et qu'il choisissent de manière aléatoire une réponse sur toute celle donnée. (Création d'un bot pour IRC, considérer comme autre bot ou pas ? Si oui, alors je chercherais ailleurs.)
► Afficher le textefichier xml
► Afficher le textecode autoit
Comme on peut le voir d’après mon code, (en partie repris d'un autre bot pour IRC), j'essaye de faire pour que la balise <Li> soit lu de manière aléatoire... Le principal probleme, c'est qu'il ne renvoit que le premier message.

Merci de me signaler si se genre de problèmes est interdit sur le forum, et, si ce n'est pas le cas, de bien vouloir m'aider.

---EDIT---

J'ai ajouté le fichier XML.au3 qui peut-être utile. ;)

Re: XML et AutoIT

Posté : lun. 29 juil. 2013 16:35
par TopXm
Hello :)

J'ai fait dans la simplicité, j'ai enregistré ton fichier XML en tant que _RanDom.txt avec une boucle sur 5 :)

Du coup en passant par un tableau puis un Random ça pourrait donner un truc du style :

Code : Tout sélectionner

#include <array.au3>

Local $Buf = FileRead("_Random.txt")
local $Arr = StringRegExp($Buf,  '(?s)<li>(.*?)</li>', 3)

_ArrayDisplay($Arr)

Local $I, $Ind

For $I = 1 To 5
    $Ind = Random(0, UBound($Arr)-1, 1)
    ConsoleWrite('Retour = ' & $Arr[$Ind] & @CRLF)
Next
 

Re: XML et AutoIT

Posté : lun. 29 juil. 2013 16:59
par shiirosan
fonctionne seul, mais une fois que je le met dans mon script, ne fonctionne plus... Je fait quelque essais et si mon problème n'est pas réglé je reviens vous voir. Merci beaucoup de l'aide déjà fourni :)

Re: XML et AutoIT

Posté : lun. 29 juil. 2013 17:07
par mikell
@TopXm
C'est le genre de code où il vaut mieux systématiquement faire une bonne gestion d'erreur

Code : Tout sélectionner

Msgbox(64, "", _salut() )

Func _salut()
  Local $Buf = FileRead("_Random.txt")
  local $Arr = StringRegExp($Buf,  '(?s)<li>(.*?)</li>', 3)
  If IsArray($Arr) Then
      Return $Arr[Random(0, UBound($Arr)-1, 1)]
  Else
     Return SetError(1, 0, "salut par défaut")
  EndIf
EndFunc

Re: XML et AutoIT

Posté : lun. 29 juil. 2013 17:24
par shiirosan
Mikell, vous êtes un miracle ! Le programme fonctionne correctement et le message est bien écrit !

---EDIT---

Encore un problème T.T Pourrais-je avoir une discutions privés avec vous Mikell ? Je ne préfère pas mettre mes sources sur internet pour le moment...

Re: XML et AutoIT

Posté : lun. 29 juil. 2013 17:41
par mikell
shiirosan a écrit : le message est bien écrit !
Attention, si le message qui s'écrit est "salut par défaut", c'est qu'il y a toujours une cagade ! :mrgreen:
Sinon ok pour le mp