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 :

Utilisation d'une classe .NET


Sujet :

WinDev

  1. #1
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    mai 2002
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : mai 2002
    Messages : 49
    Points : 55
    Points
    55
    Par défaut Utilisation d'une classe .NET
    Bonjour,
    je tente d'utiliser la dll Winscp (afin de faire du SFTP) au travers d'un assemblage .NET
    Les quelques manipulations j'ai pu effectuer sont fonctionnelles.
    J'ai par contre un souci avec l'utilisation d'une classe de l'assemblage qui me permettrait de gérer les erreurs.

    En effet, lors de l'instanciation de la classe, je reçois le message suivant :

    Erreur :La méthode 'Constructeur' de la classe 'TransferOperationResult' est protégée; elle n'est pas accessible hors des méthodes de la classe 'TransferOperationResult' ou des classes dérivées de 'TransferOperationResult'.
    FEN_Fenêtre2.BTN_Bouton2, Clic sur FEN_Fenêtre2.BTN_Bouton2, ligne 45, colonne 45


    Si je me reporte au code d'exemple en C#, il n'y a effectivement pas d'instanciation de la classe.
    En clair comment traduire le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    session.Open(sessionOptions);
     
                        // Upload files
                        TransferOptions transferOptions = new TransferOptions();
                        transferOptions.TransferMode = TransferMode.Binary;
     
                        TransferOperationResult transferResult;
                        transferResult = session.PutFiles(@"C:\LogoMail.jpg", "/home/admK2IT/", false, transferOptions);
     
                        // Throw on any error
                        transferResult.Check();
    dans un code compréhensible par windev ?

    Voici une première tentative :
    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
    clSess est une Session
    
    clSess:Open (clSessOpt)
    
    bRes est un booléen
    
    
    clTrOpt est un TransferOptions
    
    clTrOpt:TransferMode= TransferMode::Binary
    
    clTransfertResult est un TransferOperationResult 
    
    clTransfertResult = clSess:PutFiles("C:\LogoMail.jpg","/home/admK2IT/Downloads/",False,clTrOpt)
    
    clTransfertResult:Check()

    Merci à tous pour votre aide.

  2. #2
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    mars 2002
    Messages
    1 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2002
    Messages : 1 134
    Points : 2 496
    Points
    2 496
    Par défaut
    D'après ce que je comprend du code que tu donne et ne connaissant pas la librairie, il semblerait que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    transferResult.Check();
    génère une exception s'il y a une erreur. Si c'est bien le cas, tu peux essayer d'utiliser ce même code dans Windev dans un bloc [EDIT]Il semblerait que ce post parle plus ou moins du même problème : http://www.developpez.net/forums/d10...lage-net-sftp/
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

  3. #3
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    mai 2002
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : mai 2002
    Messages : 49
    Points : 55
    Points
    55
    Par défaut
    Bonjour,
    non, il n'y a pas génération d'exception tel qu'envisagé dans Windev.
    C'est l'objet "TransferOperationResult" qui gère les erreurs ou pas rencontrée lors de l'execution des différentes commande.

    Ce qui m'ennuie ici, c'est que je ne vois pas comment traduire le fait qu'il ne faut pas instancier la classe pour pouvoir l'utiliser...

    Merci quoi qu'il en soit merci pour la réponse.

  4. #4
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    décembre 2008
    Messages
    3 161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : décembre 2008
    Messages : 3 161
    Points : 7 690
    Points
    7 690
    Par défaut
    bonjour,
    il faut que tu utilises un objet dynamique.
    Voici un exemple de l'utilisation de ton assemblage winscp pour une session ftp :
    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
    clSess est une Session
    clSessOpt est une SessionOptions 
     
    clSessOpt:Protocol = Protocol.Ftp
    clSessOpt:HostName = "perso-ftp.juju.fr"
    clSessOpt:UserName = "porky"
    clSessOpt:Password = "tropfacileatrouver"
    //clSessOpt:SshHostKey = "ssh-rsa 1024 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx"
     
    clSess:Open (clSessOpt)
     
    clTrOpt est un TransferOptions
    clTrOpt:TransferMode= TransferMode::Binary
     
    clTransfertResult est un TransferOperationResult dynamique
    clTransfertResult = clSess:PutFiles("F:\juju.gif","/",Faux,clTrOpt)
     
    clTransfertResult:Check()
    UnTransfer est un TransferEventArgs dynamique 
    POUR x = 1  _A_ clTransfertResult:Transfers:get_count()
    UnTransfer = clTransfertResult:Transfers:get_Item(x-1)
    Trace("envoi du fichier " + UnTransfer:FileName + " réussi" )		
    FIN
    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

Discussions similaires

  1. Utiliser une classe .net dans C++Builder
    Par gandf dans le forum C++Builder
    Réponses: 0
    Dernier message: 07/04/2010, 00h12
  2. Utiliser une classe .net en c++/win32
    Par gandf dans le forum C#
    Réponses: 1
    Dernier message: 28/03/2010, 18h48
  3. ou mettre une structure utilisée par une classe
    Par grand's dans le forum C++
    Réponses: 10
    Dernier message: 28/07/2005, 19h53
  4. Réponses: 8
    Dernier message: 22/12/2004, 23h57
  5. Réponses: 2
    Dernier message: 18/05/2004, 15h12

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