Exemples évolués
Chaque exemple montre une utilisation pratique de la fonction du WLangage.
Quand plusieurs syntaxes sont possibles, chacune est illustrée indépendamment.
Le code suivant permet de se connecter à un serveur FTP et de vérifier si un fichier existe dans la liste des fichiers d'un répertoire. Ce fichier est ensuite récupéré.
|
||
// Identifiant de connexion
nIdConnexion est un entier // Paramètres de la connexion FTP sAdresseServeurFTP, sNomCompteFTP, sPasseFTP sont des chaînes // Paramètres pour FTPCommande sNomCommandeFTP est une chaîne sNomFichierSurServeurFTP est une chaîne sCheminFichierSurServeurFTP est une chaîne sRéponseServeurFTP, sDonnéesDuServeurFtp sont des chaînes // Variables pour les tests sUnNomDeFichier est une chaîne IndiceFichier est un entier bFichierTrouveSurServeur est un booléen sAdresseServeurFTP = "192.5.58.47" sNomCompteFTP = "MonCompteFTP" sPasseFTP = "pass" // Connexion FTP nIdConnexion = FTPConnecte(sAdresseServeurFTP, sNomCompteFTP, sPasseFTP) SI nIdConnexion <> -1 ALORS // La connexion est Ok // Nom du fichier à récupérer sNomFichierSurServeurFTP = "Majprod.zip" sCheminFichierSurServeurFTP = "RepMaj" //(chemin avec des "/" et PAS des "\") // spécification du répertoire dans lequel il y a le fichier à récupérer SI FTPRepEnCours(nIdConnexion,sCheminFichierSurServeurFTP) = Faux ALORS Erreur(ChaîneConstruit("Impossible de se positionner sur "+ ... "le répertoire %1 sur le serveur FTP.", ... sCheminFichierSurServeurFTP),ErreurInfo()) FIN // récupération de la liste des fichiers du répertoire courant par // la fonction du W-Langage "FTPCommande" et la commande FTP "LIST" // Nom de la commande FTP sNomCommandeFTP = "LIST" //peut s'obtenir aussi avec la commande FTPListeFichier // Demande de la liste des fichiers du répertoire courant SI FTPCommande(nIdConnexion,"LIST", ... sRéponseServeurFTP, sDonnéesDuServeurFtp) = Faux ALORS // échec de la commande FTP Erreur(ChaîneConstruit("Echec de la commande %1. "+ ... "Réponse du serveur FTP : %2",sNomCommandeFTP, ... sRéponseServeurFTP),ErreurInfo()) SINON // On vérifie que le nom du fichier spécifié existe bien sur le serveur FTP IndiceFichier = 1 BOUCLE // Un nom complet de fichier sur le serveur FTP // (avec la date, l'heure et les attributs) sUnNomDeFichier = ExtraitChaîne(sDonnéesDuServeurFtp,IndiceFichier, RC ) SI sUnNomDeFichier = EOT ALORS SORTIR // Nom du fichier seul (sans la date, ni l'heure, ni les attributs) sUnNomDeFichier = sUnNomDeFichier[[40 A]] // c'est le fichier recherché ? (sans vérification de la casse) SI sUnNomDeFichier ~= sNomFichierSurServeurFTP ALORS SORTIR IndiceFichier++ FIN // Fichier trouvé ? SI PAS bFichierTrouveSurServeur ALORS //liste des fichiers du répertoire en cours sur le serveur Erreur(ChaîneConstruit("Le fichier %1 n'a pas été trouvé sur le serveur FTP."+ ... " Voici la liste des fichiers du répertoire en cours sur le serveur FTP :"+ ... RC +"%2",sNomFichierSurServeurFTP,sDonnéesDuServeurFtp)) FIN FIN SI bFichierTrouveSurServeur ALORS // le fichier existe bien sur le serveur FTP, on le récupère // récupération du fichier par la fonction du W-Langage "FTPCommande" // et la commande FTP "RETR" // Nom de la commande FTP sNomCommandeFTP = "RETR" // peut s'obtenir aussi avec la commande FTPRécupère SI FTPCommande (nIdConnexion,sNomCommandeFTP+" "+... sNomFichierSurServeurFTP, sRéponseServeurFTP, sDonnéesDuServeurFtp) = Faux ALORS // échec de la commande FTP Erreur(ChaîneConstruit("Echec de la commande %1. Réponse du serveur FTP : %2", ... sNomCommandeFTP,sRéponseServeurFTP),ErreurInfo()) SINON // données bien récupérées, les données du fichier "sNomFichierSurServeurFTP" // sont dans "sDonnéesDuServeurFtp" Info(ChaîneConstruit("La récupération du fichier %1 s'est bien déroulée,"+ ... " cliquez sur OK pour l'enregistrer sur le disque local",sNomFichierSurServeurFTP)) //Enregistrement des données du fichier en local (dans le répertoire en cours sans chemin) SI fSauveTexte(sNomFichierSurServeurFTP,sDonnéesDuServeurFtp) = Faux ALORS Erreur("Impossible d'enregistrer les données récupérées",ErreurInfo()) FIN FIN FIN // Déconnexion FTPDéconnecte(nIdConnexion) Info("Connexion FTP terminé") SINON Erreur("La connexion au serveur FTP a échoué", ErreurInfo()) FIN
|