Page 1 sur 1

[Func] _InetGetX Avec Reprise de téléchargement!

Posté : mer. 30 mars 2011 18:47
par matwachich
Voici une fonction dont je suis plutôt fière je l'avoue!
Elle permet de télécharger un fichier (comme InetGet), sauf que elle est faite en pure AutoIt et qu'elle permet la reprise de téléchargements interrompus!
Je pense que la description est assez précise, et l'exemple fourni vaut mieux 1000 explications!
J'attend vos commentaires avec impatience!

Re: [Func] _InetGetX Avec Reprise de téléchargement!

Posté : jeu. 07 avr. 2011 18:09
par Bubule
:D Bravo bravo bravo ! Merci ! C'est vraiment super génial comme UDF, grandiose, il marche vraiment bien et est super utile. Merci à vous !

Re: [Func] _InetGetX Avec Reprise de téléchargement!

Posté : jeu. 07 avr. 2011 20:30
par matwachich
Bah y'a pas de quoi!

Re: [Func] _InetGetX Avec Reprise de téléchargement!

Posté : ven. 08 avr. 2011 16:47
par scorp84
Excellent ++++++++

Un grand merci pour ce partage ;-)

Amicalement.

BM

Re: [Func] _InetGetX Avec Reprise de téléchargement!

Posté : mar. 03 janv. 2012 17:08
par lesolutionneur
Sympa l'UDF !
dommage qu'il y ait un InetGetSize() qui, sauf erreur de ma part, utilise Internet Explorer.
L'avantage d'utiliser les requêtes est que :
-on ne risque pas d'avoir internet explorer qui ne répond pas
-c'est plus rapide
-on économise la ram.

Ici, l'utilisation de IE empêche tout cela, pas possible de récupérer la taille avec des requêtes?

bon UDF :D

Re: [Func] _InetGetX Avec Reprise de téléchargement!

Posté : mar. 03 janv. 2012 18:10
par matwachich
Possible, mais j'ai remarqué que certains serveurs ne renvoient pas dans l'en-tête l'info de taille, or, même chez ces serveurs, INetGetSize arrive à me trouver la taille!

Je me souvient avoir beaucoup chercher pour ça, car moi aussi, je hais IE!

Edit: Je répond à ça, ici:
1- à propos de la boucle For, ce n'est pas tout à fait ce que vous avez fait, mais plutôt:
► Afficher le texte
2- Je me disait que c'est au cas ou on passe un paramètre bizzare genre Handle ou Binary, mais c'est vrai que ça n'a pas de grande utilité

3- Non, la chaine ne sera pas coupé au milieu mais un "" sera retourné. Et puis, télécharger un URL incomplet je vois pas pourquoi???!
Exemple:
Si je donne comme parametre à _Url_To_Host http://www.google.com
elle me retournera: www.google.com et une chaine vide!
PS: les // de http:// ne posent pas de problème car il sont "tué" par

Code : Tout sélectionner

$url = StringReplace($url, 'http://', '')

Re: [Func] _InetGetX Avec Reprise de téléchargement!

Posté : mar. 03 janv. 2012 18:56
par lesolutionneur
Merci pour tes réponses ! :)
INetGetSize arrive à me trouver la taille!
Il doit bien y avoir une explication rationelle !
Faudrait voir la fonction, comment elle marche et si elle utilise une dll, regarder sur msdn s'ils expliquent son fonctionnement, sinon --> [forum anglais] :/

En fait pour l'histoire du "/", ce que je ne comprends pas, dans ton code, je comprends ça :

Code : Tout sélectionner

-trouver le caractère "/" dans l'url
-faire -1 sur la position du caractère "/" trouvé
-garder que la partie de chaîne
 
Mais mettons une adresse:
"autoitscript.fr/forum/"
Tu es bien d'accord, il y a deux "/" dans l'adresse, tu utilises la fonction qui recherche la présence de "/", hors, cette fonction cherche de droite à gauche par défaut, donc elle devrait trouver le premier "/" et pas le deuxième logiquement.
Elle prend donc l'adresse "autoitscript.fr"
Ce n'est pas ce que l'on veut, non ?
On voulait "autoitscript.fr/forum/"
Dis moi si je me trompe mais je pense qu'il fair mieux utiliser les deux arguments:
-le premier, spécifies-lui que tu veux que la recherche commence par la droite et que tu ne veux qu'il recherche que sur une lettre.
Comme ça, t'es sûr d'enlever l"/" à la fin.

Enfin, je dois sûrement me tromper, détrompe-moi ! ;)

Re: [Func] _InetGetX Avec Reprise de téléchargement!

Posté : mer. 04 janv. 2012 20:33
par matwachich
lesolutionneur a écrit :cette fonction cherche de droite à gauche par défaut
:shock: vous en êtes bien sure?????????

Je crois que vous n'avez pas bien saisie l'utilité de cette fonction:

Au fait, _INetGetX à besoin de:
- Le nom de domaine, celui qu'on donnera à TCPConnect (exemple: www.autoitscript.fr)
- Le chemin vers la ressource, qu'on donnera à la requête GET (exemple: forum/dossier/fichier_à_télécharger.zip)

La fonction _Url_To_Host() sert à extraire ces 2 informations d'un URL complet de type:
www.autoitscript.fr/forum/dossier/fichi ... harger.zip
ou alors
http://www.autoitscript.fr/forum/dossie ... harger.zip

Alors, ce que je fais dans la fonction c'est:

Code : Tout sélectionner

$url = StringReplace($url, 'http://', '')
J'enlève le http:// car il contient des / qui pourraient interférer avec le reste des fonctions

Code : Tout sélectionner

$ret[0] = StringLeft($url, StringInStr($url, '/') - 1)
Je cherche la position du premier / en partant de la gauche, ça sera celui juste après www.autoitscript.fr
Donc, je met dans $ret[0] (la partie en gras): http://www.autoitscript.fr/forum/dossier/fichier_à_télécharger.zip

Code : Tout sélectionner

$ret[1] = StringTrimLeft($url, StringInStr($url, '/'))
Là, je supprime la première partie de l'url, c'est à dire le nom de domain ET le / qui le suit
ça donne: http://www.autoitscript.fr/forum/dossier/fichier_à_télécharger.zip

J'espère que j'ai été claire!

Re: [Func] _InetGetX Avec Reprise de téléchargement!

Posté : mer. 04 janv. 2012 21:10
par lesolutionneur
Oui, tu as été très claire ! Désolé, j'ai cu que tu avais essayé d'enlever le "/" tout à la fin de l'adresse, désolé !

Et pour le "de droite à gauche", je le suis trompé, j'avais édité mais mon édit n'a pas semblé être pris en compte...

Faudrait vraiment trouver une solution pour ce problème de taille de fichier : peux-tu me donner un exemple ou le serveur ne spécifie pas la taille mais un inetgetsize te renvoie la taille ?

Ps:
vous en êtes bien sure????????
mon pseudo, c'est "le solutionneu"r et non "la solutionneuse" :D

Re: [Func] _InetGetX Avec Reprise de téléchargement!

Posté : mer. 04 janv. 2012 21:59
par Tlem
lesolutionneur a écrit :Ps:
vous en êtes bien sure????????
mon pseudo, c'est "le solutionneu"r et non "la solutionneuse" :D
Alors là ... Je suis mort de rire, c'est la poêle qui se fout du chaudron. :lol:
http://www.autoitscript.fr/forum/viewto ... 032#p61032

Re: [Func] _InetGetX Avec Reprise de téléchargement!

Posté : mer. 04 janv. 2012 23:31
par lesolutionneur
Lol :)
Mais en fait :
-bienvenue : terme général destiné à tout le monde (on dit "(la) bienvenue")
Bienvenue chez nous, Marc !

-Bienvenu : Marc est bienvenu chez nous: cet exemple illustre son utilisation. "bienvenu" ne doit être utilisé que de la part d'une personne à destination d'une personne ou d'un objet (ce café est le bienvenu !)

Ensuite, ne pas confondre "bienvenue" et "bienvenue" !

Bien sûr, vous êtes perspicaces et vous avez repéré le piège : le premier est la version féminine de "bienvenu" (elle est bienvenue), le deuxième est la version générale de "bienvenue" (je vous souhaite la bienvenue).

Faudrait que je fasse un QCM un de ces jours :
Lequel est la forme féminine de "bienvenu" ?
-bienvenue
-bienvenue
Voilà tout !

Ps: pourquoi un chaudron et une poêle mis à part que chaudron est masculin et poêle, féminin ?

Re: [Func] _InetGetX Avec Reprise de téléchargement!

Posté : jeu. 05 janv. 2012 00:04
par Tlem
Cette discussion à déjà eu lieu à plusieurs reprise. Donc c'est sans doute moi qui devais faire un sujet spécial concernant mon choix de la version masculine de bienvenu.
A l'origine, dans ma tête, c'était : Soyez le bienvenu (car les geekette ne sont pas courante sur ce forum bien qu'il y en ait au moins deux ou trois. :D ).
lesolutionneur a écrit :Ps: pourquoi un chaudron et une poêle mis à part que chaudron est masculin et poêle, féminin ?
http://fr.wiktionary.org/wiki/c%E2%80%9 ... u_chaudron

Re: [Func] _InetGetX Avec Reprise de téléchargement!

Posté : sam. 19 mai 2012 18:43
par ELGAMALI
Bonjour Matwachich
Voici une fonction dont je suis plutôt fière je l'avoue! Je vous le confirme à 100% c’est un défi inédit. Par contre pour que ta fonction soit complète elle a besoin tout simplement d’une barre de progression avec %. Voir l’exemple ci-dessous :
► Afficher le texte