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

Partagez des fonctions et des UDF AutoIt.
Règles du forum
.
Répondre
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

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

#1

Message 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!
Fichiers joints
_InetGetX.au3
(8.99 Kio) Téléchargé 545 fois
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Avatar du membre
Bubule
Niveau 4
Niveau 4
Messages : 55
Enregistré le : mer. 27 mai 2009 11:40
Status : Hors ligne

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

#2

Message 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 !
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

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

#3

Message par matwachich »

Bah y'a pas de quoi!
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Avatar du membre
scorp84
Niveau 7
Niveau 7
Messages : 400
Enregistré le : mar. 04 nov. 2008 21:51
Localisation : Avignon, France
Status : Hors ligne

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

#4

Message par scorp84 »

Excellent ++++++++

Un grand merci pour ce partage ;-)

Amicalement.

BM
lesolutionneur
Niveau 7
Niveau 7
Messages : 368
Enregistré le : ven. 09 déc. 2011 11:25
Status : Hors ligne

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

#5

Message 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
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

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

#6

Message 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://', '')
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
lesolutionneur
Niveau 7
Niveau 7
Messages : 368
Enregistré le : ven. 09 déc. 2011 11:25
Status : Hors ligne

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

#7

Message 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 ! ;)
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

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

#8

Message 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!
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
lesolutionneur
Niveau 7
Niveau 7
Messages : 368
Enregistré le : ven. 09 déc. 2011 11:25
Status : Hors ligne

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

#9

Message 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
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

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

#10

Message 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
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
lesolutionneur
Niveau 7
Niveau 7
Messages : 368
Enregistré le : ven. 09 déc. 2011 11:25
Status : Hors ligne

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

#11

Message 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 ?
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

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

#12

Message 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
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
ELGAMALI
Niveau 5
Niveau 5
Messages : 184
Enregistré le : mar. 13 sept. 2011 00:06
Status : Hors ligne

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

#13

Message 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
Répondre