[R] INI & FTP
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
[R] INI & FTP
Bonjour,
J'ai fait une petite application qui permet, entre autre, de télécharger des fichiers par FTP en fonction du jour de la semaine.
Chaque jour, il y a entre 4 et 8 fichiers à télécharger.
La première version de l'application fonctionne parfaitement car j'ai mis les chemins et les noms des fichiers en "dur" dans l'application.
Le premier problème est que cette manière de faire utilise 800 lignes de code (sans lignes vides), je vous laisse donc imaginer la difficulté pour s'y retrouver.
Le deuxième problème est que j'ai développé cette application pour un service que je vais quitter sous peu. Il n'y aura donc plus de support.
Afin de palier le problème d'ajout ou de suppression de la liste des fichiers à télécharger, j'ai pensé à passer par un fichier INI.
Je ne maitrise malheureusement absolument pas les fichiers INI ni la façon de les utiliser avec AutoIt.
Ce que j'aurais aimé faire, c'est d'avoir la liste des fichiers et leur chemin de téléchargement dans un "bloc" puis un "bloc" par jour avec uniquement le nom des fichiers à télécharger, ce qui permettrais à mes utilisateurs de ne pas avoir de notion AutoIt pour mettre la liste à jour.
Un petit exemple vaut mieux qu'un long discours :
[Fichiers]
fichier1=//serveur1.dossier1.fichier(0)
fichier2=//serveur1.dossier2.fichier(0)
fichier3=//serveur2.dossier.fichier(0)
[Lundi]
fichier1
[Mardi]
fichier2
[Mercredi]
fichier3
Si quelqu'un à une idée de comment faire pour "lier" un nom de fichier du "bloc" [Jour] au chemin du fichier du "bloc" [Fichiers].
Ou au pire, une idée complètement différente mais qui permettrais d'arriver à un résultat similaire et "user friendly".
Merci d'avance !
J'ai fait une petite application qui permet, entre autre, de télécharger des fichiers par FTP en fonction du jour de la semaine.
Chaque jour, il y a entre 4 et 8 fichiers à télécharger.
La première version de l'application fonctionne parfaitement car j'ai mis les chemins et les noms des fichiers en "dur" dans l'application.
Le premier problème est que cette manière de faire utilise 800 lignes de code (sans lignes vides), je vous laisse donc imaginer la difficulté pour s'y retrouver.
Le deuxième problème est que j'ai développé cette application pour un service que je vais quitter sous peu. Il n'y aura donc plus de support.
Afin de palier le problème d'ajout ou de suppression de la liste des fichiers à télécharger, j'ai pensé à passer par un fichier INI.
Je ne maitrise malheureusement absolument pas les fichiers INI ni la façon de les utiliser avec AutoIt.
Ce que j'aurais aimé faire, c'est d'avoir la liste des fichiers et leur chemin de téléchargement dans un "bloc" puis un "bloc" par jour avec uniquement le nom des fichiers à télécharger, ce qui permettrais à mes utilisateurs de ne pas avoir de notion AutoIt pour mettre la liste à jour.
Un petit exemple vaut mieux qu'un long discours :
[Fichiers]
fichier1=//serveur1.dossier1.fichier(0)
fichier2=//serveur1.dossier2.fichier(0)
fichier3=//serveur2.dossier.fichier(0)
[Lundi]
fichier1
[Mardi]
fichier2
[Mercredi]
fichier3
Si quelqu'un à une idée de comment faire pour "lier" un nom de fichier du "bloc" [Jour] au chemin du fichier du "bloc" [Fichiers].
Ou au pire, une idée complètement différente mais qui permettrais d'arriver à un résultat similaire et "user friendly".
Merci d'avance !
Modifié en dernier par Y01 le jeu. 11 déc. 2014 15:51, modifié 1 fois.
Y01
Re: [..] INI & FTP
Bonjour,
Pour info, ce que vous décrivez comme "bloc" correspond à une "section".
Par chance, Autoit est très bien fourni en function "INI".
J'ai du mal à saisir ce que vous entendez par "lier".
Mais sachez que les sections d'un INI sont très facilement récupérables dans des variables. Il ne vous reste qu'a concaténer les chaines qui vous intéresse.
Cdlt. Dimavr.
[EDIT] j'ai juste du mal à comprendre votre histoire de "." dans le chemin de la section [FICHIERS]
Pour info, ce que vous décrivez comme "bloc" correspond à une "section".
Par chance, Autoit est très bien fourni en function "INI".
J'ai du mal à saisir ce que vous entendez par "lier".
Mais sachez que les sections d'un INI sont très facilement récupérables dans des variables. Il ne vous reste qu'a concaténer les chaines qui vous intéresse.
Cdlt. Dimavr.
[EDIT] j'ai juste du mal à comprendre votre histoire de "." dans le chemin de la section [FICHIERS]
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !
Re: [..] INI & FTP
En fait, ce que j'entends par "lier", c'est de pouvoir mettre le nom d'un fichier dans la section du jour que je souhaite et que l'application aille directement chercher le chemin du fichier dans la section [Fichiers] sans avoir à réécrire le chemin pour chaque jour.
Les "." remplacent les "/" dans le serveur FTP que j'utilise.
Les "." remplacent les "/" dans le serveur FTP que j'utilise.
Y01
Re: [..] INI & FTP
Bonjour,
J'verrais bien qq chose dans ce genre :
J'ai pas testé mais on doit pas être très loin de la vérité.
J'verrais bien qq chose dans ce genre :
Code : Tout sélectionner
#include <Date.au3>
Dim $Tab00[0] ; Tabealu du fichier (des liens)
$Jour = _DateToDayOfWeek(@YEAR, @MON, @MDAY) ; Jour de la semaine
$CheminP = "Chemin du fichier principal .ini" ; Fichier qui contient les liens des fichiers jours
$CheminJ = "" ; Chemin du fichier du jour .ini
; lis la ligne du jour
$CheminJ = FileReadLine($CheminP, $Jour)
MsgBox(1,"Lien du jour",$CheminJ)
; Rempli le tableau des liens de la journée.
$Tab00 = FileReadToArray($CheminJ)
MsgBox(1,"Lien 1",$Tab00[1])
; reste à boucler le $Tab00[$i] pour ressortir tous les liens.
-
Utilisateur 3309 supprimé
- Status : Hors ligne
Re: [..] INI & FTP
Bonjour,
pour ce genre de situation personnellement je n'utilise pas autoit mais une simple tache planifiée pour chaque jour de la semaine, avec un batch qui va télécharger les fichiers en question.
Pour telecharger un fichier par FTP il suffit d'utiliser la ligne de commande NCFTPGET (installer NCFTP CLIENT : http://www.ncftp.com/download/) c'est beaucoup plus pratique que d'utiliser la commande DOS FTP.
Donc:
tache planifiée du Lundi, execute le batch LUNDI.BAT
dans lequel on met la ou les commandes:
ncftpget -u user -p password ftp.monsite.com /dossier/fichier1.zip /dossier/fichier1.zip
ncftpget -u user -p password ftp.monsite.com /dossier/fichier2.zip /dossier/fichier2.zip
meme principe pour les autres jours de la semaine.
L'avantage c'est qu'il n'y a pas 800 lignes de code, c'est très facile a comprendre et à maintenir.
pour ce genre de situation personnellement je n'utilise pas autoit mais une simple tache planifiée pour chaque jour de la semaine, avec un batch qui va télécharger les fichiers en question.
Pour telecharger un fichier par FTP il suffit d'utiliser la ligne de commande NCFTPGET (installer NCFTP CLIENT : http://www.ncftp.com/download/) c'est beaucoup plus pratique que d'utiliser la commande DOS FTP.
Donc:
tache planifiée du Lundi, execute le batch LUNDI.BAT
dans lequel on met la ou les commandes:
ncftpget -u user -p password ftp.monsite.com /dossier/fichier1.zip /dossier/fichier1.zip
ncftpget -u user -p password ftp.monsite.com /dossier/fichier2.zip /dossier/fichier2.zip
meme principe pour les autres jours de la semaine.
L'avantage c'est qu'il n'y a pas 800 lignes de code, c'est très facile a comprendre et à maintenir.
Re: [..] INI & FTP
A2Energie, si je comprends bien, tu utilise 2 fichiers INI ?
Personnellement, j'utilise un bout de code pour définir le jour de la semaine (vu que mes sections sont nommées ainsi) :
Cetipabo, mes utilisateurs (malheureusement, ainsi que moi) n'ont pas de droits d'admin sur les machines, donc les installations d'outil tiers, on oublie.
De plus, outre le fait de télécharger les fichiers, certains sont zippés après téléchargement puis envoyés dans des dossiers sur le réseau (avec accent les dossiers, donc encore un problème avec les Bat) et d'autres fichiers subissent des traitement par AutoIt (d'où les 800 lignes).
Merci quand même de ton idée.
Personnellement, j'utilise un bout de code pour définir le jour de la semaine (vu que mes sections sont nommées ainsi) :
► Afficher le texte
De plus, outre le fait de télécharger les fichiers, certains sont zippés après téléchargement puis envoyés dans des dossiers sur le réseau (avec accent les dossiers, donc encore un problème avec les Bat) et d'autres fichiers subissent des traitement par AutoIt (d'où les 800 lignes).
Merci quand même de ton idée.
Y01
Re: [..] INI & FTP
Bonjour,
Peut être ne nous sommes nous pas compris,
Permet d'identifier le numéro de la semaine :
Permet de lire un fichier ini qui comprend les liens de tes fichier ini de la semaine, premiere ligne tu inscrits le lien de ton fichier ini de lundi deuxieme ligne le lien du fichier de mardi ect...
Puis, il suffit d'ouvrir et de lire le fichier de la journée. (grâce au lien récupéré précédemment).
Peut être ne nous sommes nous pas compris,
Permet d'identifier le numéro de la semaine :
Code : Tout sélectionner
$Jour = _DateToDayOfWeek(@YEAR, @MON, @MDAY) ; Jour de la semaineCode : Tout sélectionner
; lis la ligne du jour
$CheminJ = FileReadLine($CheminP, $Jour)Code : Tout sélectionner
; Rempli le tableau des liens de la journée.
$Tab00 = FileReadToArray($CheminJ)
MsgBox(1,"Lien 1",$Tab00[1])
; reste à boucler le $Tab00[$i] pour ressortir tous les liens.Re: [..] INI & FTP
Pourquoi utiliser un filereadline alors qu'une flopée de fonctions dédiées à l'INI sont existante ?A2Energie a écrit : Permet de lire un fichier ini qui comprend les liens de tes fichier ini de la semaine, premiere ligne tu inscrits le lien de ton fichier ini de lundi deuxieme ligne le lien du fichier de mardi ect...Code : Tout sélectionner
; lis la ligne du jour $CheminJ = FileReadLine($CheminP, $Jour)
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !
Re: [..] INI & FTP
J'avais bien compris pour les jours, j'ai juste une manière différente de faire.
Par contre, ce que tu propose oblige à avoir un INI par jour et d'avoir les liens des fichiers dans chaque INI.
C'est dérangeant parce-qu'il y aurait redondance au niveau des fichiers qui sont téléchargés plusieurs fois dans la semaine et aussi parce-que les utilisateurs qui devront modifier les INI devront connaitre les chemins des fichiers au lieu de connaitre uniquement leur nom.
Je m'excuse si j'ai du mal à me faire comprendre, ce n'est pas un sujet évident surtout quand on ne peut pas donner d'exemple concret.
Par contre, ce que tu propose oblige à avoir un INI par jour et d'avoir les liens des fichiers dans chaque INI.
C'est dérangeant parce-qu'il y aurait redondance au niveau des fichiers qui sont téléchargés plusieurs fois dans la semaine et aussi parce-que les utilisateurs qui devront modifier les INI devront connaitre les chemins des fichiers au lieu de connaitre uniquement leur nom.
Je m'excuse si j'ai du mal à me faire comprendre, ce n'est pas un sujet évident surtout quand on ne peut pas donner d'exemple concret.
Y01
Re: [..] INI & FTP
Bonjour,
A2Energie <- hors sujet
https://www.autoitscript.com/autoit3/do ... ection.htm
Merci DimVar
A2Energie <- hors sujet
https://www.autoitscript.com/autoit3/do ... ection.htm
Merci DimVar
Re: [..] INI & FTP
Certes, sans le code ni le contexte, c'est delicat de corriger un code...Y01 a écrit :ce n'est pas un sujet évident surtout quand on ne peut pas donner d'exemple concret.
N'avez vous pas un exemple simple sur un serveur FTP accessible (meme perso) sur lequel nous pourrions vous aider ?
Cdlt. Dimvar.
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !
Re: [..] INI & FTP
Voila mon code actuel :
je joins aussi le fichier INI que j'utilise.
Avec ce code, j'arrive à récupérer la section du jour en cours sans problème.
Ce que je veux c'est réussir à lister les fichiers présent dans cette section.
Ensuite, il ne me restera plus qu'à faire en sorte que chaque fichier de cette section récupère son chemin dans la section [Fichiers].
► Afficher le texte
Avec ce code, j'arrive à récupérer la section du jour en cours sans problème.
Ce que je veux c'est réussir à lister les fichiers présent dans cette section.
Ensuite, il ne me restera plus qu'à faire en sorte que chaque fichier de cette section récupère son chemin dans la section [Fichiers].
- Fichiers joints
-
FTP.ini- (608 Octets) Téléchargé 68 fois
Y01
Re: [..] INI & FTP
Laquelle ?Y01 a écrit :VCe que je veux c'est réussir à lister les fichiers présent dans cette section.
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !
Re: [..] INI & FTP
Chaque jour est une section du fichier INI qui contient une liste de fichier.Y01 a écrit : Avec ce code, j'arrive à récupérer la section du jour en cours sans problème.
Ce que je veux c'est réussir à lister les fichiers présent dans cette section.
ex :
[Jeudi]
fichier5
fichier6
fichier7
fichier8
Actuellement, et si j’exécute le code aujourd'hui, ma variable $section prendra la valeur "Jeudi".
Je veux donc pouvoir lister les fichiers de la section récupérée par $section dans un premier temps.
Y01
Re: [..] INI & FTP
Bonjour,
Le problème est finalement assez simple,
Tu n'identifie pas de valeur à tes keys.
par exemple :
Cela devrait régler ton problème.
Et aussi : est plus simple que des If
Le problème est finalement assez simple,
Tu n'identifie pas de valeur à tes keys.
par exemple :
Code : Tout sélectionner
[Lundi]
fichier1=""
fichier3=""
[Mardi]
fichier2=""
fichier3=""
[Mercredi]
fichier1=""
fichier4=""
[Jeudi]
fichier5=""
fichier6=""
fichier7=""
fichier8=""
[Vendredi]
fichier1=""
fichier9=""Et aussi : est plus simple que des If
Code : Tout sélectionner
Local $aDay[8] = [ "", "Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"]
$jour = $aDay[@WDAY]Re: [..] INI & FTP
Normal, puisque $section est le resultat d'un IniReadSectionNames.Y01 a écrit : Actuellement, et si j’exécute le code aujourd'hui, ma variable $section prendra la valeur "Jeudi".
Ce que tu veux est le retour de IniReadSection.
Cdlt, Dimvar.
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !
Re: [..] INI & FTP
Je suis arrivé à mes fins !
Voici le code fonctionnel :
Ainsi que le fichier INI utilisé pour l'exemple.
Pour explication de mes modifications (et pour aider les futurs lecteurs qui pourraient avoir ce problème) :
- J'ai utilisé la fonction de A2Energie pour lister les jours (merci à toi
)
- J'ai récupéré la section correspondante au jour en cours
- J'ai fait une sorte de liaison SQL entre mes sections en concaténant 3 variables ($fichiers[$aArray[$i][1]][1])
Que veux dire cette ligne ? $fichiers[$aArray[$i][1]][1]
$fichiers va lire la section [Fichiers]
$aArray va lire la section du jour en cours
Le premier [1] (celui la : $aArray[$i][1]) permet de récupérer le chiffre que j'ai assigné à mes fichiers.
Le deuxième [1] (celui ci : $fichiers[$aArray[$i][1]][1]) m'affiche le chemin complet de mon fichier.
Le fait d'utiliser le premier [1] indique directement au deuxième [1] sur quelle ligne il doit se placer pour récupérer le chemin du fichier.
J'espère que les explications sont moins difficiles à comprendre que le problème
Merci à tous !
Voici le code fonctionnel :
► Afficher le texte
Pour explication de mes modifications (et pour aider les futurs lecteurs qui pourraient avoir ce problème) :
- J'ai utilisé la fonction de A2Energie pour lister les jours (merci à toi
- J'ai récupéré la section correspondante au jour en cours
- J'ai fait une sorte de liaison SQL entre mes sections en concaténant 3 variables ($fichiers[$aArray[$i][1]][1])
Que veux dire cette ligne ? $fichiers[$aArray[$i][1]][1]
$fichiers va lire la section [Fichiers]
$aArray va lire la section du jour en cours
Le premier [1] (celui la : $aArray[$i][1]) permet de récupérer le chiffre que j'ai assigné à mes fichiers.
Le deuxième [1] (celui ci : $fichiers[$aArray[$i][1]][1]) m'affiche le chemin complet de mon fichier.
Le fait d'utiliser le premier [1] indique directement au deuxième [1] sur quelle ligne il doit se placer pour récupérer le chemin du fichier.
J'espère que les explications sont moins difficiles à comprendre que le problème
Merci à tous !
- Fichiers joints
-
FTP.ini- (565 Octets) Téléchargé 68 fois
Y01
- mikell
- Spammer !

- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [R] INI & FTP
► Afficher le textefichier ini
► Afficher le textecode
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Re: [R] INI & FTP
C'est agaçant de voir à quel point un problème qui prend autant de temps pour certains peut être résolu aussi vite par d'autre et d'une manière tellement plus propre
Merci Mikell, ton code fonctionne bien mieux que le mien.
Merci Mikell, ton code fonctionne bien mieux que le mien.
Y01


