Downloads http en multithread avec indy

Description

Cette appli répond à une question que j'avais posée dans le forum il y a qq temps, et à laquelle je n'avais pas trouvé la réponse que je cherchais... résultat: ma première source postée sur le site!

Pour info, l'appli utilise des concepts qui peuvent intéresser certaines personnes: traitement de fichiers, threads, TStringList, tableaux dynamiques, TObjectList, composant TIdHTTP, DragDrop, héritage et méthodes virtuelles...

Le programme utilise un fichier texte qui contient la liste des downloads à effectuer. On peut choisir le nombre de downloads simultanés qu'on veut faire. Pour le reste, je vous laisse regarder le prog et la doc fournie, les sources sont (grassement) commentées!

Nouveautés de la version 4:
-Refonte complète du code; adieu la classe Main fourre-tout, place à une architecture + propre. Un objet DataStructure gère la structure d'une chaîne variable (URL ou fichier sur disque), un objet DataElement gère 1 élément (variable ou constant) de cette structure.
-Possibilités élargies dans la structure de l'URL: incrémentation de chaînes de caractères, rappel de variable, dépendance de variables (ex: incrémenter var1 tous les 3 incréments de var2) etc... Voir doc jointe pour les précisions.
-Gestion différente du fichier source: le fichier est chargé dans une TStringList et libéré immédiatement, on peut donc le modifier ou ajouter de nouvelles lignes à la liste en chargeant un autre fichier sans attendre la fin du 1° traitement. On peut supprimer des lignes de la liste, en déplacer par DragDrop, sauter la ligne en cours.
-Options supplémentaires: possibilité de différer le lancement des downloads, bouton "Calculer" pour calculer le nombre total de fichiers sans les télécharger, IHM remodelée pour pouvoir afficher/masquer les zones qu'on veut (paramètres, liste et détails).

Fichier d'exemples, repris et expliqués dans le pdf.

Plus? bin... voir le code!

Conclusion :


Toute amélioration, suggestion, commentaire est le bienvenu.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.