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

VB.NET Discussion :

Récupérer du texte


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2013
    Messages : 9
    Par défaut Récupérer du texte
    Bonjour

    Je suis débutant et voilà ce qui me pose problème:

    En cliquant sur un bouton je voudrai récupérer dans un label ou autre outil, le texte traduit automatiquement par "google traduction".

    J'ai suivi un tutoriel de sur le net, mais le texte que j'arrive à récupérer est toujours le même!

    Comment récupérer le texte de chaque traduction que j'aurai lancée?

    J'utilise Visual Basic Express 2010.

    Merci d'avance pour votre aide à venir.

  2. #2
    Membre Expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Par défaut
    Il nous faudrait un exemple de ton code, on en peut pas deviner comme cela ce qui ne marche pas
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2013
    Messages : 9
    Par défaut
    Citation Envoyé par infosam76 Voir le message
    Il nous faudrait un exemple de ton code, on en peut pas deviner comme cela ce qui ne marche pas
    Merci de m'avoir répondu!

    Voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Public Class Form1
        Dim web As New WebBrowser
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            web.Navigate("https://translate.google.fr/?hl=fr&tab=wT#en/fr/me")
     
        End Sub
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim request As String = web.Document.GetElementById("result_box").InnerHtml
            Label1.Text = request
        End Sub
    End Class
    ________________________________________________________________
    Le fait qu'il y ait "me" dans l'adresse web fait que à chaque fois que je clique sur le bouton (button1); il s'affiche toujours "moi" dans le label (label1)!

    Mais si j’efface "me" dans l'adresse web ("https://translate.google.fr/?hl=fr&tab=wT#en/fr/me"); alors rien ne s'affiche dans le label! Même si ja tape autre chose que "me"....

    En fait ça marche une fois!
    Je voudrais que chaque texte que je tape dans "Google traduction" soit quand je clique sur le button1, intégré en fr dans le label1.


    Merci.

  4. #4
    Membre éclairé Avatar de Uranne-jimmy
    Homme Profil pro
    Bioinformatique
    Inscrit en
    Décembre 2012
    Messages
    778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Bioinformatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 778
    Par défaut
    Bonjour,

    Chez moi, à condition d'accepter le protocole https, le code marche avec d'autres mots. Mais dans la forme d'un <span> de class hps(innertext garde uniquement le texte voulu). Tu as vérifié que les mots que tu cherches sont traduisible ?

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2013
    Messages : 9
    Par défaut
    Citation Envoyé par Uranne-jimmy Voir le message
    Bonjour,
    .... Tu as vérifié que les mots que tu cherches sont traduisible ?
    Oui, j'écris des mots simples comme "I" ou "Home" pour tester le programme.


    Citation Envoyé par Ez3kiel Voir le message
    Bonjour,
    ....
    Mais sinon le fonctionnement suit la logique, la partie "Me" correspondant au texte à traduire, si tu ne mets rien, il ne traduit rien, si tu mets toto, il traduit toto, si tu mets travel, il traduit voyage.
    OK, mais là, j'ai ouvert plusieurs fois la page Google traduction

    Exemple1:
    Je tape dans google trad "Horse" puis je copie l'adresse de google:
    "https://translate.google.fr/?hl=fr&tab=wT#en/fr/horse"
    dans le prog, alors ça marche le Label1 affiche "cheval".

    Mais le prog garde en mémoire ce mot à chaque fois que je clique sur le bonton1, même si je change de mot ex: "car" etc...

    Exemple2: Je copie l'adresse de google "
    "https://translate.google.fr/?hl=fr&tab=wT#en/fr/"
    Remarque: Sans le mot "horse" en fin de ligne.
    Puis je tape dans Google traduction le mot "horse"
    Et là rien ne se passe... Le Label1 reste vide.

    Citation Envoyé par Pol63 Voir le message
    Bonjour,
    .... il y a des api de traduction
    Des "api de traduction"! Tu peux m'expliquer en quoi ça consiste?

    En espérant avoir été assez clair dans mes explications.
    Merci à tous de vous être penché sur mon problème!

  6. #6
    Membre éclairé Avatar de Uranne-jimmy
    Homme Profil pro
    Bioinformatique
    Inscrit en
    Décembre 2012
    Messages
    778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Bioinformatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 778
    Par défaut
    Si tu veux changer de mot sans fermer l'appli, ton programme ne marche pas en effet. Pour changer de mot, utiliser un textbox pour entrer le mot, ensuite il faut que la page soit chargé.

    Avec un Form1_load, la page sera chargé uniquement à l'ouverture de l'application, il faut utiliser un autre événement, comme par exemple un bouton en plus ou même le bouton que tu as déjà.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Public Class Form1
        Dim web As New WebBrowser
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim request As String = web.Document.GetElementById("result_box").InnerText
            Label1.Text = request
        End Sub
     
        Private Sub BTload_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTload.Click
            web.Navigate("https://translate.google.fr/?hl=fr&tab=wT#en/fr/" & TBmot.Text)
        End Sub
    End Class

  7. #7
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 198
    Par défaut
    Citation Envoyé par lolitablue Voir le message
    Des "api de traduction"! Tu peux m'expliquer en quoi ça consiste?
    une api est une mise à disposition d'une chose qui fait quelque chose
    ca peut etre sous forme de dll ou de web service (http, tcp ou autre)
    (ca peut aussi être une dll qui encapsule un appel à un webservice pour plus de simplicité)

    en l'occurrence il existe des apis de traductions en tant que web service, tu te connectes au webservice, tu envoies ton string, et tu recois le string traduit seulement
    celle de google a l'air payante, à voir si celle de bing est gratuite
    (googler api translate)
    il y a pleins d'api de tout genre, par exemple pour avoir des maps dans son appli, envoyer des sms depuis une appli, faire une télécommande pour freebox etc...
    même les sites qui t'affichent l'ip public sur laquelle tu es ont en général une api qui permet d'éviter de chercher dans de l'html l'ip

    c'est mieux de passer par une api pour plusieurs raisons :
    - ca évite de faire transiter quelques dizaines (centaines ?) de ko pour rien (tu veux juste un string de quelques octets)
    - l'html ca peut changer dans le temps en cas de changement du site, alors qu'une api quand ca doit changer il y a une nouvelle version et l'ancienne fonctionne encore (au moins pour un moment, et les utilisateurs peuvent être averti par mail du changement)
    si le site change GetElementById("result_box") n'existera peut etre plus et ton appli plantera
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #8
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    Idem que Uranne-jimmy pour le .InnerText au lieu d'InnerHTML (mais pas besoin de valider le protocole chez moi)

    N'oublie pas que tu dois laisser le temps au WebBrowser de charger la page avant d'appuyer sur ton bouton (WebBrowser.DocumentCompleted)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
            Label1.Text = WebBrowser1.Document.GetElementById("result_box").InnerText
        End Sub

    Mais sinon le fonctionnement suit la logique, la partie "Me" correspondant au texte à traduire, si tu ne mets rien, il ne traduit rien, si tu mets toto, il traduit toto, si tu mets travel, il traduit voyage.

  9. #9
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 198
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    web.Navigate("https://translate.google.fr/?hl=fr&tab=wT#en/fr/" & me.textbox1.text)
    par contre charger toute une page web pour récupérer un string ce n'est pas forcément une bonne pratique, il y a des api de traduction
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. [Excel] Récupérer le texte dans un shape de type zonedetext
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/12/2005, 11h00
  2. Récupérer du texte d'un fichier xml entre deux balises
    Par manutudescends dans le forum Format d'échange (XML, JSON...)
    Réponses: 24
    Dernier message: 30/11/2005, 18h29
  3. récupérer le texte d'un tooltip grace à son hwnd
    Par ChrisitianS_ dans le forum MFC
    Réponses: 2
    Dernier message: 19/11/2005, 15h23
  4. Récupérer le texte d'un champ de texte
    Par theberliner dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 04/12/2004, 10h08
  5. [methode] récupérer du texte
    Par thesly dans le forum Débuter
    Réponses: 6
    Dernier message: 23/04/2004, 15h14

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