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 :

Erreur de syntax System.Array.Copy


Sujet :

WinDev

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Erreur de syntax System.Array.Copy
    Bonjour,

    Ayant besoin de traduire un code C# .net en WLanguage, j'ai inséré les assemblages Mscorlib et Sytem dans mon projet.

    Le problème étant que dans le code ci-dessous, j'obtiens une erreur de syntax pour System.Array.Copy, quelque soit la façon dont je déclare mes variables.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ByteTest est un tableau de byte
    ByteFichier est un tableau de byte
    sNom_Exe est une chaîne
    
    sNom_Exe = "testeur.exe"
    ByteFichier = System.IO.File.ReadAllBytes(sNom_Exe)
    
    System.Array.Copy(ByteFichier, 0x3C, ByteTest , 0, 2)
    Même si j'utilise la fonction HexaVersEntier("3C"), j'obtiens toujours une erreur de syntax.

    Merci de vos réponses.

  2. #2
    Membre éprouvé Avatar de wimbish
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 416
    Points : 1 073
    Points
    1 073
    Par défaut
    Bonjour,

    Pourquoi ne pas envoyer un entier (int32) comme demandé ?
    http://msdn.microsoft.com/fr-fr/libr...(v=vs.80).aspx ?
    Christophe.

    Tous les chemins mènent à Rome http://doc.pcsoft.fr/fr-FR/

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    303
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 303
    Points : 812
    Points
    812
    Par défaut
    Bonjour nejahwest,
    Citation Envoyé par benjahwest Voir le message
    Ayant besoin de traduire un code C# .net en WLanguage, j'ai inséré les assemblages Mscorlib et Sytem dans mon projet.

    Le problème étant que dans le code ci-dessous, j'obtiens une erreur de syntax pour System.Array.Copy, quelque soit la façon dont je déclare mes variables.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ByteTest est un tableau de byte
    ByteFichier est un tableau de byte
    sNom_Exe est une chaîne
    
    sNom_Exe = "testeur.exe"
    ByteFichier = System.IO.File.ReadAllBytes(sNom_Exe)
    
    System.Array.Copy(ByteFichier, 0x3C, ByteTest , 0, 2)
    Ce que tu présentes, ce n'est pas une traduction en WLangage.
    C'est l'utilisation de fonctions .NET en WLangage... tu perçois la différence.

    Traduire un code écrit dans un "langage source" dans un "langage cible", c'est utiliser les types de données et des fonctionnalités "équivalentes" du langage cible.
    Il y a souvent plusieurs possibilités de traduction.

    Voilà un exemple de traduction en WLangage (pas de .NET), basée sur le type Buffer.
    Code WLangage : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ByteTest, ByteFichier est un Buffer
    sNom_Exe est une chaîne
     
    sNom_Exe = "testeur.exe"
    ByteFichier = fChargeBuffer(sNom_Exe)
    ByteTest = ByteFichier[[0x3C sur 2]]


  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par wimbish Voir le message
    Bonjour,

    Pourquoi ne pas envoyer un entier (int32) comme demandé ?
    http://msdn.microsoft.com/fr-fr/libr...(v=vs.80).aspx ?
    En fait, j'ai essayé pas mal de types différents, mais rien y fait. Un int32 en Windev, c'est juste un entier... je comprends pas trop et je me dit que Windev ne connait pas la syntax "Array.Copy, méthode (Array, Int32, Array, Int32, Int32)" peut être.

    @OnePoint: C'est pourquoi en effet que le fait d'utiliser les fonctions équivalente en Wlanguage serait mieux. Merci pour ce bout de code déjà car je n'aurais jamais su que fChargeBuffer et le type buffer était ce que je recherchais.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    303
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 303
    Points : 812
    Points
    812
    Par défaut
    Bonjour benjahwest,

    Citation Envoyé par benjahwest Voir le message
    En fait, j'ai essayé pas mal de types différents, mais rien y fait. Un int32 en Windev, c'est juste un entier... je comprends pas trop et je me dit que Windev ne connait pas la syntax "Array.Copy, méthode (Array, Int32, Array, Int32, Int32)" peut être.
    Je n'ai pas de certitude, mais je situerai le problème plutôt du côté des paramètres de type tableau.

    Citation Envoyé par benjahwest Voir le message
    @OnePoint: C'est pourquoi en effet que le fait d'utiliser les fonctions équivalente en Wlanguage serait mieux. Merci pour ce bout de code déjà car je n'aurais jamais su que fChargeBuffer et le type buffer était ce que je recherchais.
    Je ne connais pas le contexte dans lequel tu as besoin de réaliser cette traduction.
    Alors je t'ai donné une traduction possible, mais pas forcément "la bonne".

    En passant, une remarque sur le type Buffer du WLangage.
    Le type Buffer convient bien quand on a besoin de travailler sur des "blocs d'octets", et aussi comme type des paramètres d'appels aux API Windows et autres DLL.
    L'opérateur d'accès [[ ]] est très puissant, avec plusieurs syntaxes. Il permet d'accéder à une fraction du buffer, tant en lecture, qu'en écriture.

Discussions similaires

  1. [Directives] Page blanche quand erreur de syntaxe
    Par syl2095 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 12
    Dernier message: 17/02/2006, 15h15
  2. [sql] erreur de syntaxe
    Par cmoa59 dans le forum JDBC
    Réponses: 14
    Dernier message: 03/05/2005, 11h41
  3. erreur de syntaxe en C++
    Par sergepmessa dans le forum C++
    Réponses: 6
    Dernier message: 11/03/2005, 18h15
  4. PHP SQL =>erreur de syntaxe (operateur absent)
    Par snipes dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/02/2005, 14h09
  5. erreur de syntaxe javascript dans ma page
    Par Oluha dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 01/02/2005, 14h53

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