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

JavaScript Discussion :

Convertir un script VB en JavaScript


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2018
    Messages : 19
    Points : 10
    Points
    10
    Par défaut Convertir un script VB en JavaScript
    Re bonjour à tous,

    existe-il un outil (ou quelqu'un?) qui puisse m'aider à convertir ce fichier vb en javascript?

    Code vb : 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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    Imports System
    Imports System.Xml
    Imports System.Xml.XPath
     
    Module Module1
     
        Sub Main()
            'Variables
            Dim tableauValeurs() As String = {"uneImageCarte.png", "42,00", "c'est un très produit", "uneImage.jpg", "Willy-Waller 2006", "ww06/5000 pièce", "Pepsico"}
            Dim i As Integer = 0
     
            'Création du lecteur XML avec chemin relatif
            Dim xmlReader As New XmlTextReader("..\..\..\bloc_gabarit.idms")
     
            'Création du document XML
            Dim xmlDoc As New XmlDocument()
     
            'Lecture du fichier
            xmlDoc.Load(xmlReader)
     
            'Création d'un noeud et intialisation au noeud racine du document
            Dim xmlNode As XmlNode = xmlDoc.DocumentElement
     
            'Définition d'une liste de noeuds correspondant à un paramètre XPath
            Dim contents As XmlNodeList = xmlNode.SelectNodes(".//Content")
     
            'Affichage du contenu de chaque noeud
            For Each content As XmlNode In contents
                Console.WriteLine(content.InnerText)
                content.InnerText = tableauValeurs(i)
                i = i + 1
            Next
            xmlDoc.Save("..\..\..\bloc_gabarit_modif.idms")
            Console.ReadLine()
        End Sub
    End Module
    Merci de votre aide.

  2. #2
    Membre actif
    Inscrit en
    Août 2006
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 191
    Points : 263
    Points
    263
    Par défaut
    Bonjour,

    Les conversions brutes non souvent aucun intérêt et c’est pour ça qu'il existe peu d'outil pour le faire.

    Que veux tu exactement ? car ton script semble insérer des valeurs dans un gabarit XML l'afficher puis enregistrer le gabarit modifié.

    C'est plus un script exécute coté serveur qu'il te faut tourne toi vers la section Node.js par exemple.

  3. #3
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Bonjour ynoury,

    pour le sport, j’ai tenté d’adapter au plus proche ton script VB en un script client (sur navigateur). Tu verras qu’il y a quelques différences, notamment dûes au modèle de sécurité des navigateurs : JS ne peut pas accéder au système de fichiers de la machine cliente (les URLs font référence à des chemins sur le serveur). Pour tester ce script il te faudra donc un serveur localhost.

    C’est du JS ultra moderne et je n’ai absolument pas pris la peine d’assurer une rétro-compatibilité. Les const et let sont là, ainsi que fetch, les template strings (chaînes entre ``), les async et await, et la boucle forof. Il faut un navigateur à jour pour faire fonctionner tout ça.

    Code HTML : 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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    <!DOCTYPE html>
    <html lang="fr">
    <head>
      <meta charset="utf-8" />
      <title>Conversion VB -> JS</title>
    </head>
    <body>
     
    <button>Action</button>
     
    <script> "use strict";
     
    const GABARIT_URL = "../../../bloc_gabarit.idms";
     
    // fonction `async` pour pouvoir utiliser `await`
    async function main() {
      // variables
      let tableauValeurs = [
        "uneImageCarte.png", "42,00", "c'est un très produit", "uneImage.jpg",
        "Willy-Waller 2006", "ww06/5000 pièce", "Pepsico" 
      ];
      let i = 0;
     
      // obtention du XML brut avec `fetch`
      let response = await fetch(GABARIT_URL);
      if (!response.ok) {
        console.log(`Request failed: ${response.status} ${response.statusText}`);
      }
      else {
        let text = await response.text();
        
        // création de l’arbre XML à partir du texte brut
        let parser = new DOMParser();
        let xmlDoc = parser.parseFromString(text, "text/xml");
     
        ////////// Choix 1 : XPath, la voie difficile //////////////////////////////
        
        /*
        // définition d’une liste de nœuds correspondant à un paramètre XPath
        // voir https://developer.mozilla.org/fr/docs/Web/API/Document/evaluate
        let contents = xmlDoc.evaluate(
          ".//Content",
          xmlDoc,
          null,
          XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,
          null
        );
        console.log(contents);
        
        // affichage du contenu de chaque nœud
        let length = contents.snapshotLength;
        for (let i = 0; i < length; i++) {
          let content = contents.snapshotItem(i);
          console.log(content.textContent);
          content.textContent = tableauValeurs[i];
        }
        */
     
        ////// Choix 2 : querySelectorAll, plus simple /////////////////////////////
        
        // définition d’une liste de nœuds correspondant à une expression CSS
        let contents = xmlDoc.querySelectorAll("Content");
        console.log(contents);
     
        // affichage du contenu de chaque nœud
        for (let content of contents) {
          console.log(content.textContent);
          content.textContent = tableauValeurs[i];
          i = i + 1;
        }
     
        ///////////// Fin choix ////////////////////////////////////////////////////
     
        // visualisation du XML modifié
        let serializer = new XMLSerializer();
        let xmlString = serializer.serializeToString(xmlDoc);
        
        let blob = new Blob([ xmlString ], { type: "text/xml" });
        let blobURL = URL.createObjectURL(blob);
     
        let $a = document.createElement("a");
        $a.target = "_blank";
        $a.href = blobURL;
        document.body.append($a);
        $a.click();
        $a.remove();
        URL.revokeObjectURL(blob);
     
        // xmlDoc.Save -> impossible à convertir, JS n’a pas accès au système de fichiers
        // Console.ReadLine -> je ne sais pas à quoi sert cet appel ici
      }
    }
     
    document.querySelector("button").addEventListener("click", () => {
      main();
    });
     
    </script>
    </body>
    </html>

    Fais attention aux majuscules / minuscules, car contrairement à VB, JavaScript est sensible à la casse. Par exemple, le script déclare une variable tableauValeurs ; si tu essayes d’accéder à TableauValeurs avec un « T » majuscule, tu auras une erreur.

    Autre chose : comme l’a suggéré Showie, tu auras plus de possibilités avec un script Node, c’est-à-dire JavaScript côté serveur (ou en ligne de commande). Contairement à du JS client, Node a accès au système de fichiers et peut donc enregistrer sans intervention manuelle de l’utilisatrice ou utilisateur.

    Aussi, je t’encourage à ouvrir un sujet dans le forum NodeJS
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2018
    Messages : 19
    Points : 10
    Points
    10
    Par défaut
    Merci pour tes conseils Watilin, je vais effectivement créer un sujet dans le forum NodeJS qui correspondra surement plus à mes besoins.

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

Discussions similaires

  1. Appeler un script PHP en javascript
    Par pierre24 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/04/2008, 15h46
  2. [PHP-JS] convertir tableau php en tableau javascript
    Par stecale dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 24/11/2006, 17h09
  3. Réponses: 4
    Dernier message: 14/08/2006, 15h50
  4. Comment executer un script shell en javascript ?
    Par bross dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 14/04/2006, 16h57
  5. Convertir un script php en asp
    Par tibow dans le forum ASP
    Réponses: 3
    Dernier message: 20/11/2005, 02h14

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