Hello,
Oui, merci, je suis sur plusieurs sujets en ce moment et on ne me laisse pas forcément le temps pour travailler (d'ou mes recherches le week end également).
J'ai bien lu attentivement vos deux réponses, et je vous remercie. J'ai réussi à adapter à d'autres données dans le code, et je suis en train de tout classer dans un fichier csv pour comparer des prix entre plusieurs sites, C'est top.
@parazitenew: J'ai joué la carte fu fichier temporaire, ça prend un peu plus de temps, j'dois mal m'y prendre, mais ça augmente la fiabilité. (cf code ci dessous partie "sleep", si je réduis la durée, ça bug aléatoirement... Peut être y a-t-il un moyen d'attendre la création du fichier?)
@ jguinch: Merci pour la réponse à ma seconde partie de question.
Code : Tout sélectionner
#include <String.au3>
#include <File.au3>
#include <Date.au3>
Dim $url = inputbox("Source", "inscrire ici l'url du site à analyser")
Dim $hDownload = InetGet($url, @WorkingDir & "\Test.txt", 1, 1)
Dim $sFldr1 = @WorkingDir&"\import\"
Dim $Date_us = _NowCalcDate()
Dim $Date_eu1 = StringRegExpReplace($Date_us, "\A(\d*)/(\d*)/(\d*)","$3/$2/$1")
Dim $Date_eu2 = StringReplace($Date_eu1,"/", "")
Dim $DossierFichier = $sFldr1&$Date_eu2&"_import.txt"
;Dim $rapport_data = "exemple"
; prévoir un contrôle de "erreur 404" et si erreur générer un log qui informe que le lien est mort
; prévoir le remplacement des des [\'] par ['] uniquement dans la désignation sur le site (exemple id 809) ou "é" par "é"
while FileExists("Test.txt")=0
Sleep(1000) ; on fait une pause, pour préserver le CPU
WEnd
$File=@WorkingDir & "\Test.txt"
$txt = FileRead($File)
$string1 = StringRegExp($txt, '<span><small>(.*?) € HT</small></span>', 1)
; ISOLATION DES VARIABLES
If IsArray($string1) Then $result = $string1[0]
;MsgBox(0,"Prix HT", "Le prix hors taxes du fournisseur est de "& $string1[0] &" €")
$string2 = StringRegExp($txt, "var id_product = (\d+)", 1)
If IsArray($string2) Then $result = $string2[0]
;MsgBox(0, "ID", "L'ID produit fournisseur est: " &$string2[0])
$string3 = _StringBetween ($txt, "var sharing_name = '","';")
;$string3 = StringReplace($string3, "é", "é")
If IsArray($string3) Then $result = $String3[0]
MsgBox(0, "ID", "Les informations concernent le produit: " &$string3[0])
;CREATION DU DOSSIER ET FICHIER
DirCreate($sFldr1)
$fh = FileOpen($DossierFichier, 1)
If $fh = -1 Then SetError(1, 0, 0)
Local $iWriteFile = FileWriteLine($fh, $string1[0]&";"&$string2[0]&";"&$string3[0])
Local $iRet = FileClose($fh)
If $iWriteFile = -1 Then SetError(2, $iRet, 0)
FileDelete ("Test.txt")
Je suis embetté par un problème de conversion entre fichier txt et csv, je vais regarder sur des forums spécialisés pour cela, c'est un peu hors sujet, mais lorsque je crée en txt, aucun problème de codage des caractères ("é" par "é") alors que quand je converti en csv y'en a un... C'est étrange. Bon, apparement, rien à voir avec autoit mais on sais jamais, si ça vous parle...
Avez vous des propositions d'amélioration de mon code? Je suis débutant en programmation et autoit est le premier language que j'apprend, je cherche à progresser. Si vous voulez le lien du site en MP no problemo
