IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

la fonction fCopieFichier ? [WD23]


Sujet :

WinDev

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 378
    Points : 40
    Points
    40
    Par défaut la fonction fCopieFichier ?
    Bonjour,

    Je voudrais faire un code qui permet de copier un fichier texte depuis le répertoire distant sur un poste en local

    Les postes sont en réseau via une adresse ip fixe ou une adresse dyndns.

    Alors j'ai mis le code ci dessous:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    Source 		est une chaîne="\\nom.dyndns.org\Program File (x86)\Gestion\mesDoc\"
    Destination        est une chaîne=ComplèteRep(fRepEnCours())
     
     
    SI fCopieFichier(Source+"Plan.txt",Destination+"Plan.txt")=Faux ALORS
    	Info(HErreurInfo(hErrComplet))
     
    //	Erreur("Erreur en copiant le fichier. vérifiez que la connexion internet est établie ou le poste serveur est allumé et connecté")
    SINON
    	Info("fichier copié")
    FIN
    La fonction m'affiche la boîte d'erreur du "Code erreur: 0 Niveau : pas d'erreur"


    Avez vous une solution avec fCopieFichier ?

    Merci de votre aide

  2. #2
    Membre éclairé
    Avatar de Narwe
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2013
    Messages : 253
    Points : 668
    Points
    668
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	Info(HErreurInfo(hErrComplet))
    La fonction HErreurInfo retourne la dernière avec les fonctions HyperFile.
    En utilisant la fonction ErreurInfo (sans le H) et sans paramètres (ou éventuellement errComplet), on peut espérer un message d'erreur plus explicite.

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 378
    Points : 40
    Points
    40
    Par défaut
    Merci Narwe de ton reponse


    Oui j'ai changé la fonction HerreurInfo() et elle m'affiche le message "Le fichier \\nom.dyndns.org\Program File (x86)\Gestion\mesDoc\Plan.txt" n'existe pas. "

    Sachant que le fichier est bien pressent dans ce chemin

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Bonjour,
    Vu que tu passes par un chemin UNC, il faut un partage sur le "serveur".
    Le chemin ressemblera donc à "\\NomDuServeur\NomDuPartage\chemin\NomDuFichier".
    S'il n'y a pas de partage, tu ne peux pas y accéder ainsi, que le fichier existe ou pas.

    Tu peux vérifier si le chemin est correct en tapant celui-ci dans la barre d'adresse de ton navigateur préféré (l'explorer de Windows fait aussi l'affaire) depuis le poste client.

    Tatayo.

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 378
    Points : 40
    Points
    40
    Par défaut
    Merci Tatayo

    Déjà mon dossier est partagé, comme vous voyez le chemin que j'ai cité en haut est pareil à "\\NomDuServeur\NomDuPartage\chemin\NomDuFichier".

    Pour simplifier les choses j'ai crée un dossier "Doc" dans le bureau dans lequel je crée un fichier "texte.txt"

    Le chemin source est ressemblera à "\\Nom.Dyndns.org\doc\texte.txt".

    Mais ça n'a pas marché

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    A mon avis le chemin est incorrect.
    "\\nom.dyndns.org\Program File (x86)\Gestion\mesDoc\" signifie que le partage s'appel "Program File (x86)".
    Est-ce bien le cas ?
    Que renvoie l'explorer de Windows avec \\nom.dyndns.org\Program File (x86)\Gestion\mesDoc\ comme chemin ?

    Je vais prendre un exemple concert.
    J'ai un NAS avec un partage qui s'appel qMultimedia (je ne connais pas le chemin "local" sur le NAS, et peu importe), dans lequel se trouve un répertoire Photos.
    Pour y accéder, je passe par le chemin \\MonNas\qMultimedia\Photos.

    Autre exemple: au taf nous avons un serveur de fichiers. Les applications internes sont dans d:\applications\internes, répertoire qui est partagé sous le nom Internes$.
    Donc pour accéder à un sous-répertoire qui va s'appeler Portail (donc d:\applications\internes\Portail), le chemin sera \\ServeurFichier\Internes$\Portail.

    Tu as créé un répertoire Doc sur le bureau, pour y accéder via le raccourci \\Nom.Dyndns.org\doc tu dois partager le répertoire Doc, et le partage doit s'appeler Doc.

    Tatayo.

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 378
    Points : 40
    Points
    40
    Par défaut
    Merci beaucoup Pour le détail
    Je vais ressayer et je vais te faire un signe.
    Merci

  8. #8
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 378
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par Fmfib Voir le message
    Merci beaucoup Pour le détail
    Je vais ressayer et je vais te faire un signe.
    Merci
    Bonjour

    Même j'ai partagé le dossier "doc" ca n'a pas marché, alors je suis penché vers la fonction FTPConnecte()

    Voila mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    Source 		est une chaîne="\\Nom.dyndns.org\doc§\"
    Destination       est une chaîne=ComplèteRep(fRepEnCours())
     
    //si fCopieFichier(Source+"Copie.txt",Destination+"Copie.txt")=faux alors
    //	info(ErreurInfo())
    //	
    //	//	Erreur("Erreur en copiant le fichier. verifiez que le poste cible est allumé et connecté")
    //sinon
    //	Info("fichier copié")
    //fin
     
    nIDConnexion est un entier
     
    nIDConnexion = FTPConnecte("ftp://Nom.dyndns.org", "Administrateur", "Passe",21)
     
    SI nIDConnexion <> -1 ALORS
     
    	Info(fCopieFichier(Source+"Copie.txt",Destination+"Copie.txt"))
    	FTPDéconnecte(nIDConnexion)
    SINON
    	Erreur()
    FIN
    Mais j'ai le message suivant " Echec de la connexion au serveur FTP "Nom.dyndns.org" du port 2 avec le nom d'utilisateur "Administrateur"

    Merci de me donner une piste

  9. #9
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Déjà, je répète mais est-ce que le chemin "\\Nom.dyndns.org\doc§\" est accessible via l'explorateur de Windows ? Est-ce que le partage s'appelle bien doc§ (ce ne serait pas plutôt doc$ d'ailleurs) ?
    Tant que tu ne peux pas y accéder via un explorateur, il est totalement inutile d'essayer de le faire depuis WinDev. Ca ne fonctionnera pas. Tu peux même essayer depuis une invite de commande un simple "dir \\nom.dyndns.org\doc$".
    Tant que tu n'as pas le contenu du répertoire, oublie WinDev.

    Ensuite dans ce code tu mélanges les fonctions f* et Ftp*. Avec FtpConnecte() tu ouvres une session FTP, il te faut donc un serveur FTP sur la machine derrière Nom.DynDns.org. Ensuite la copie se fera avec FtpEnvoie() ou FtpRecupère() en fonction du sens. Tu as d'ailleurs un exemple complet livré avec WinDev concernant les fonctions FTP.
    Là tu ouvres une fenêtre pour passer par la porte.

    Pour finir, tu fais un Info(fCopieFichier…). Si tu avais jeté un œil sur l'aide en ligne de fCopieFichier, tu verrais que le Info() ne va pas te renvoyer grand chose d'utile. Narwe t'a indiqué comment afficher un message d'erreur explicite.

    Tatayo.

  10. #10
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 378
    Points : 40
    Points
    40
    Par défaut
    Merci d'abord de ton patience Tatayo

    J'ai testé le lien "Nom.dyndns.org\doc§\" dans l'explorateur windows qui me redirige vers le navigateur par défaut "opera" et dans lequel j'ai le message : "404 - Fichier ou répertoire introuvable."

    Je reformule ma question, peut être que j'ai mal exprimé.

    Mon dossier (Doc partagé) est situé sur un serveur distant dans une autre ville où je n’existe pas actuellement.

    Merci de ton coopération

  11. #11
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Comme indiqué, je doute fort que le nom de partage soit doc§ (je penche soit pour doc, soit pour doc$ si le partage est caché).
    Peux-tu nous montrer la fenêtre où tu paramètre le partage (depuis le serveur donc) ?
    Ensuite est-ce qu'il y a un firewall entre les deux machines ? Si c'est le cas il faut voir si les ports sont ouverts (je te laisse voir avec celui qui gère le firewall).

    Tatayo

  12. #12
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 378
    Points : 40
    Points
    40
    Par défaut
    Nom : DocIMG.png
Affichages : 1162
Taille : 23,9 Ko

  13. #13
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Donc le nom de partage n'est pas doc§ ni doc$, mais doc.
    Le chemin est donc \\Nom.dyndns.org\doc\.
    Reste à vérifier si la partie dyndns fonctionne correctement, si un éventuel firewall ne bloque pas le trafic SMB,e t si il n'y a pas un problème de droits (sur le partage et/ou sur le répertoire).

    Tatayo.

  14. #14
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 378
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par tatayo Voir le message
    Donc le nom de partage n'est pas doc§ ni doc$, mais doc.
    Le chemin est donc \\Nom.dyndns.org\doc\.
    Reste à vérifier si la partie dyndns fonctionne correctement, si un éventuel firewall ne bloque pas le trafic SMB,e t si il n'y a pas un problème de droits (sur le partage et/ou sur le répertoire).

    Tatayo.

    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 12/02/2013, 01h08
  2. Fonction API
    Par margilb dans le forum C++Builder
    Réponses: 2
    Dernier message: 08/07/2002, 11h11
  3. Implémentation des fonctions mathématiques
    Par mat.M dans le forum Mathématiques
    Réponses: 9
    Dernier message: 17/06/2002, 16h19
  4. fonction printf
    Par ydeleage dans le forum C
    Réponses: 7
    Dernier message: 30/05/2002, 11h24
  5. FOnction api specifiant la position de la souris
    Par florent dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/05/2002, 20h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo