Page 1 sur 1

[..] Inetget et overwrite

Posté : ven. 10 oct. 2014 13:38
par francoislc
Bonjour,

j'utilise la fonction Inetget pour télécharger environ 700 fichiers (4GO) avec 700 adresses différentes (700 lignes de code quasi identiques), c'est lourd !
dnas les 700, il y en a pas peut etre que 50 qui ont été modifié. Existe -t-il soit via overwrite,soit avec filegettime soit avec syncback, une possibilité de ne télécharger que ceux qui ont été modifiés ?
Cordialement
François

Re: [inetget et overwrite]

Posté : ven. 10 oct. 2014 14:07
par Sea
La question que tu devrais te poser c'est "Ai-je un moyen de savoir si mes URLs sont pareille?"

Si tu as 1URL par ligne et que celle identique sont a la même ligne tu a juste a lire ton ancien fichier et ton nouveau fichier ligne par ligne et comparer.

Sinon tu met l'un des deux fichiers dans un tableau (découpé par URL pour chaque entrée) et tu compare avec l'autre fichier ;)

Re: [inetget et overwrite]

Posté : ven. 10 oct. 2014 14:12
par TommyDDR
Bonjour / bonsoir,
Lors de la création de votre message, quelques lignes étaient écrites pour vous indiquer comment respecter les règles de présentation d'un sujet.

Merci d'en tenir compte et d'éditer le titre de votre 1er sujet.

Re: [..] Inetget et overwrite

Posté : ven. 10 oct. 2014 14:46
par francoislc
Bonjour Sea,
j'ai une url par ligne donc par fichier et c'est toujours la même, je viens d'essayer avec inetgetsize et filegetsize, ça fonctionne, c'est juste très long à écrire, 3 lignes supplémentaires par fichier
merci
à Tommyddr, j'ai modifié le titre

cordialement

Re: [..] Inetget et overwrite

Posté : ven. 10 oct. 2014 14:50
par TommyDDR
InetGet possède une option pour récupérer le fichier en cache si présent, c'est l'option par défaut
optional : $INET_LOCALCACHE (0) = Get the file from local cache if available (default).
Avez vous autre chose que "0" dans le paramètre option ?

Re: [..] Inetget et overwrite

Posté : ven. 10 oct. 2014 15:12
par francoislc
Non, je n'ai pas mis d'option, et il me le retélécharge systématiquement, alors que le 0 est l'option par défaut, il ne devrait pas le faire si j'ai bien compris ! il ne devrait remplacer que les fichiers modifiés entre les deux téléchargements.

Re: [..] Inetget et overwrite

Posté : ven. 10 oct. 2014 16:25
par jguinch
Euh attends... Tu as 700 lignes de code ???
Il te suffit de mettre tes URL dans un fichier texte, et lire le fichier ligne à ligne avec AutoIt. Du coup, ça fait plus que 10 lignes environ... :roll:

Re: [..] Inetget et overwrite

Posté : ven. 10 oct. 2014 19:47
par mikell
...Avec une petite fonction pour vérifier le fichier ?

Edit
Euh non, il a dit "3 lignes supplémentaires par fichier " donc ça va faire 2800 lignes Image

Re: [..] Inetget et overwrite

Posté : sam. 11 oct. 2014 00:08
par francoislc
Qu'ils soient dans un fichier texte, ou dans une ligne de code ça fait toujours 700 lignes à écrire et ça je n'ai pas le choix ! Pour l'instant la seule comparaison que j'ai trouvée pour savoir si le fichier n'a pas été modifié entre deux téléchargements, c'est avec la taille du fichier (inetgetsize du coté téléchargement et filegetsize côté fichier existant) et leur comparaison (donc 3 lignes supplémentaires). Je rappelle que mon but est de gagner du temps sur le téléchargement, donc de ne pas re-télécharger les fichiers identiques, comme le ferait syncback si c'était un seul et même fichier à télécharger avec 700pdf dedans.
A écrire ça se fait, à grands coups de copier coller et de CTRL H, mais je j'espère qu'il existe une méthode efficace qui permettent de comparer ces deux fichiers sans repasser par ces lignes de code supplémentaires (genre une option que je n'aurais pas vu (overwrite), passer par un tableau, je ne sais quoi encore...)
merci de votre aide

Re: [..] Inetget et overwrite

Posté : sam. 11 oct. 2014 02:54
par orax
Pour comparer si un fichier a été modifié sur le serveur il y a aussi la date de modification.

Code : Tout sélectionner

$WinHttpReq = ObjCreate("WinHttp.WinHttpRequest.5.1")
$WinHttpReq.Open("HEAD", "http://www.autoitscript.com/cgi-bin/getfile.pl?autoit3/autoit-v3-setup.exe", false)
$WinHttpReq.Send()
ConsoleWrite($WinHttpReq.GetResponseHeader("Last-Modified") & @CRLF)