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 :

Trouver une chaine inconnue placée entre 2 chaines connues


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2013
    Messages : 34
    Points : 25
    Points
    25
    Par défaut Trouver une chaine inconnue placée entre 2 chaines connues
    Bonjour, je vais essayer d'être le plus clair possible, afin d'avoir des réponses appropriées voir d'autres pistes que je pourrait éventuellement exploiter.

    Mon probléme : J'aimerais depuis mon webbrowser, récupérer dans le code source de la page une partie de la source qui ne peut être définie, mais qui est fort heuresement entre 2 balises qui elles sont connues, j'ai bien trouver sur google 2/3 exemples, dont un qui fonctionne de maniére générale (Voir code plus bas), mais qui hélas semble ne pas fonctionner avec le code source de la page que je désire Splitter.

    Quel est le but : Il s'agit d'utiliser Google translate, sans passer par l'api, qui malheureusement est devenue payante, ainsi depuis un textbox pour le moment je voudrais
    1 - Rediriger mon webbrowser vers https://translate.google.fr/?#pl/fr/monMotEnPolonais (Accompli)
    2 - Obtenir la source du code (Accompli)
    3 - Parser ce code, afin d'en extraire la traduction en Français, qui visiblement se trouve toujours dans une ou plusieurs balises : <span class="hps">ma traduction en Français</span>

    A se niveau la, mon msgbox de debeugage, reste vide, malgré que mon code fonctionne pour une chaine de test genre <a>maChaine</a>, peut être un problème d'échappement de mes guillemets ?

    Voici la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        Private Function MidStr(ByVal Expression As String, ByVal sLeft As String, ByVal sRight As String, Optional ByVal iStart As Integer = 0) As String
            Dim iPosL As Integer = Expression.IndexOf(sLeft, iStart)
            If iPosL > -1 Then
                Dim iPosR As Integer = Expression.IndexOf(sRight, iPosL + sLeft.Length)
                If iPosR = -1 Then
                    'pas le caractère de fin, on prend la chaîne complète
                    iPosR = Expression.Length - iPosL - sLeft.Length
                    sRight = String.Empty
                End If
                Return Expression.Substring(iPosL + sLeft.Length, iPosR - iPosL - sLeft.Length)
            End If
            Return String.Empty
        End Function
    Et le code de mon Button :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox(MidStr(WebBrowser2.DocumentText, "<span class=""hps"">", "</span>"))
    Je sais qu'il existe d'autres services d'api proposant de traduire dans différents langages, hélas soit elles sont limitées en nombre de caractères, soit elle ne traduise pas suffisamment bien à mon gout, le but étant de proposer une interface de jeu à plusieurs centaines de joueurs, la limite par exemple de bing (2 millions de caractères il me semble) risque d'être vite une problématique.

    Merci par avance pour vos pistes.

  2. #2
    Invité
    Invité(e)
    Par défaut
    J'éviterais le plus possible de faire des split, car justement, ton programme va beuger si une personne veut traduire </span>, mais bon, c'est un cas extrême...
    A ta place, je regarderais plutôt du côté du parse en HTML : http://www.codeproject.com/Articles/...-NET-Framework

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    alors pour moi définir le texte à traduire dans le webbrowser j'ai ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     DirectCast(Wb.Document, mshtml.HTMLDocumentClass).getElementById("source").innerText = "texte à traduire"
    et pour lire la traduction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim doc = DirectCast(Wb.Document, mshtml.HTMLDocumentClass)
    Dim TexteTraduit = doc.getElementById("result_box").innerText

    avec en référence Microsoft.mshtml qui s'occupe de découper l'html selon les balises et d'accéder aux éléments
    ca permet aussi de faire .click sur les boutons etc...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    Tout dépends ensuite si ton parsing se limite à une simple recherche de ce genre auquel cas utiliser la méthode "getElementById" pour parser le contenu du WebBrowser ou alors si cela devait être beaucoup plus complexe il faudrait utiliser HtmlAgilityPack..Breff tu peux utiliser cette simple fonction mais attention il ne te suffira pas de C&P cette fonction et lancer ton projet pour que cela fonctionne ....--> Il faut se poser les questions suivantes sur le contenu de la page renvoyé à l'issu de la requête :

    ---> Ces balises existent-elles à plusieurs endroits dans le contenu de la réponse retournée : "<span class=""hps"">" ......... "</span>" ?

    - Si oui une simple fonction de parsing retournera plusieurs résultats donc prévoir en résultats de retour une collection de String ou List de String !!!
    - Si non (ou présence unique) alors c'est good y'a pas grands chose à faire un retour d'un type String suffira !!!

    ---> Avant d'utiliser la fonction il faut affiner le contenu de la page retourner de manière à être certains que le résultat est unique !!

    Donc les fonctions :


    1 -La fonction qui permet de retourner un résultat unique car on sait que le type de balisage n'est présent qu'une seule fois ou bien que le parsing de la page a été affiné au préalable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
           Public Function ParseBetween(Source$, Before$, After$, Offset%) As String
                If String.IsNullOrEmpty(Source) Then Return String.Empty
                If Source.Contains(Before) = True Then
                    Dim Result$ = Source.Substring(Source.IndexOf(Before) + Offset)
                    If Result.Contains(After) = True Then
                        If Not String.IsNullOrEmpty(After) Then Result = Result.Substring(0, Result.IndexOf(After))
                    End If
                    Return Result
                Else
                    Return String.Empty
                End If
            End Function
    ---> Comment utiliser cette fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Dim content$ = ParseBetween(WebBrowser2.DocumentText, "<span class=""hps"">", "</span>", "</span>".Length)

    2 -La fonction qui permet de retourner plusieurs résultats car on sait que le type de balisage existe à plusieurs endroits , c'est le cas pour les pages qui retournent des liens URLs balisées par exemple :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
          Public Function ParseBetween(Source$, Before$, After$) As String()
                Dim Results As New List(Of String)
                Dim T As New List(Of String)
                With T
                    .AddRange(Regex.Split(Source, Before))
                    .RemoveAt(0)
                    For Each Item$ In T
                        Results.Add(Regex.Split(Item, After)(0))
                    Next
                End With
                Return Results.ToArray
            End Function
    ---> Comment utiliser cette fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
               For Each c in ParseBetween(WebBrowser2.DocumentText, "<span class=""hps"">", "</span>") 
                   MsgBox(c)
               Next

    STP : On lit bien les commentaires plus haut pour être certains de bien utiliser les fonctions !

  5. #5
    Nouveau membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2013
    Messages : 34
    Points : 25
    Points
    25
    Par défaut
    Tout d'abord, merci de votre attention à mon sujet, voulant trop bien expliquer mon problème, il me semble que j'en ai oublié l'essentiel, je suis sous Visual Studio 2012, j'ai utilisé un Winform VB.NET, et il me semble que ce que vous me proposez est valable en Asp, n'ayant pas de connaissances poussées en VB.NET, je me retrouve confronté à l'impossibilité de faire un import de Microsoft.mshtml ou mshtml.

    Je suis vraiment navré de n'avoir pas pensé à dire tout cela avant

    Edit : Wallace ayant posté sa réponse lorsque j'écrivais.

    Merci également à toi,

    Ces balises existent-elles à plusieurs endroits dans le contenu de la réponse retournée : "<span class=""hps"">" ......... "</span>" ?
    Pour un mot simple, oui, cependant hier en effectuant quelques testes google a prit la liberté d'ajouté une virgule entre mes mots, ce qui a eu pour effet de me mettre 2 fois les balises susnommées, j'imagine donc qu'avec une long texte on peut se retrouver avec xx balises, cependant cette balise n'est la que pour englober de la traduction, donc j'imagine qu'avec une boucle, je dois pouvoir m'y retrouvé.

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Citation Envoyé par haxball47 Voir le message
    Tout d'abord, merci de votre attention à mon sujet, voulant trop bien expliquer mon problème, il me semble que j'en ai oublié l'essentiel, je suis sous Visual Studio 2012, j'ai utilisé un Winform VB.NET, et il me semble que ce que vous me proposez est valable en Asp, n'ayant pas de connaissances poussées en VB.NET, je me retrouve confronté à l'impossibilité de faire un import de Microsoft.mshtml ou mshtml.
    et pourtant ^^

    le code que je t'ai donné je l'utilise dans un programme .net et pour utiliser google translate exactement comme tu le souhaites je pense
    donc si tu arrives à importer la dll tu auras peu de modification à apporter en théorie
    la dll se trouve surement dans l'onglet COM
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2013
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 235
    Points : 359
    Points
    359
    Par défaut
    Bonjour,
    J'avais un bout de code que j'avais écrit dans le temps, il est a adapter comme on veut
    Ça permet juste de récupérer ce qu'il y a entre deux balises, et ça me parait assez simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    'exemple:
    Dim Str As String = "<div>Registered And Active Website</div>"
    Dim Balise1 As String = "<div>"
    Dim Balise2 As String = "</div>"
    MessageBox.Show((Str.Split(New String() {Balise1}, StringSplitOptions.RemoveEmptyEntries)(0)).Split(New String() {Balise2}, StringSplitOptions.RemoveEmptyEntries)(0))
    Si jamais ça peut servir a quelqu'un...
    Par nature les mots, ils sont flous, c'est une fois alignés qu'ils se précisent.

  8. #8
    Nouveau membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2013
    Messages : 34
    Points : 25
    Points
    25
    Par défaut
    Wallace : Ta Function, fait comme mon code, le msgbox reste blanc, j'ai pensé que google avait peut être une protection contre se genre de situation, mais grâce à une fonction findtext j'ai quand même pu m'apercevoir que "hps" ainsi que la traduction apparaissait bien dans le code source récupéré.

    Pol63 : Après une petite recherche, je suis tomber sur un post disant que microsoft.mshtml n'était plus utilisé depuis vb 2005, j'ai cependant dans COM réussi à trouver "microsoft html object library", je ne comprend cepandant pas comment utilisé tout ça, j'ai encore des progrès à faire :/

    Active_cs : Effectivement, on ne peut pas plus simple, elle ressemble à s'y méprendre à une fonction php que j'utilise souvent
    Mais comme pour mon code, ou encore celuis de Wallace, lors du test sans rien modifié, tout est bon, dés lors que je récupere le code source de la page traduite, ... msgbox vide, imcomprehensible.

  9. #9
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2013
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 235
    Points : 359
    Points
    359
    Par défaut
    Re:
    Fais nous un copier coller du texte en question...
    Je dois sortir, je ne sais pas si je pourrais regarder tout de suite mais...

    Ou sinon essaye encore:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
            Dim NotreTexte As String = "<div>Texte numéro 1</div><div>Texte numéro 2</div><div>Texte numéro 3</div><div>Texte numéro 4</div>"
            Dim Str As String = NotreTexte
            Dim Balise1 As String = "<div>"
            Dim Balise2 As String = "</div>"
            Dim Texte As String = ""
     
            Do While Str.Contains(Balise1)
                Texte = ((Str.Split(New String() {Balise1}, StringSplitOptions.RemoveEmptyEntries)(0)).Split(New String() {Balise2}, StringSplitOptions.RemoveEmptyEntries)(0))
                MessageBox.Show(Texte)
                Str = Replace(Str, Balise1 & Texte & Balise2, "", , 1)
            Loop
    Par nature les mots, ils sont flous, c'est une fois alignés qu'ils se précisent.

  10. #10
    Nouveau membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2013
    Messages : 34
    Points : 25
    Points
    25
    Par défaut
    Le code source serait trop long à copier coller ici, cependant tu peux le voir en affichant la source de cette page
    La code avec boucle ne renvoi rien non plus

    Merci encore

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Citation Envoyé par haxball47 Voir le message
    Pol63 : Après une petite recherche, je suis tomber sur un post disant que microsoft.mshtml n'était plus utilisé depuis vb 2005, j'ai cependant dans COM réussi à trouver "microsoft html object library", je ne comprend cepandant pas comment utilisé tout ça, j'ai encore des progrès à faire :/
    certes cette librairie n'est surement pas la plus récente, mais elle fonctionne dans mon programme fait avec vs2010
    et il y en a surement d'autres plus récente qui le font (google dll html parse .net)
    au final c'est plus pratique, car il suffit d'indiquer l'id de l'élément qu'on veut, en cas de modification de mise en page ca continuera surement de fonctionner, alors que le split a moins de chance
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  12. #12
    Nouveau membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2013
    Messages : 34
    Points : 25
    Points
    25
    Par défaut
    Je comprend ce que tu veux dire, le truc c'est que visiblement au jour d'aujourd'hui, je ne peux plus trouver cette librairie dans le gestionnaire de références, alors si j'ai bien compris, à moins de la trouver ailleurs et de la déclarer en faisant "parcourir", je vais devoir m'en passer.

    Mettons qu'il soit possible de procéder comme cela et que je la trouve, les personnes qui auront accès à l'application finale, devront l'installer également ou elle sera incluse directement dans le fichier exécutable généré ?

    Désolé encore pour toutes mes questions :/

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    comme toute dll utilisée par un exe il faut la fournir avec l'exe, et les dll COM doivent être registrées
    un setup peut faire tout ca
    essaye html agility pack sinon

    enfin si tu y arrives avec du substring ou autre et que ca te suffit ne te compliques pas la vie
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  14. #14
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    @Haxball47 : Rassures-moi :

    Tu ajoutes bien les fonctions de parsing dans le gestionnaire d’événement "DocumentCompleted" de ton composant WebBrowser ??

    A+

  15. #15
    Nouveau membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2013
    Messages : 34
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par wallace1 Voir le message
    @Haxball47 : Rassures-moi :

    Tu ajoutes bien les fonctions de parsing dans le gestionnaire d’événement "DocumentCompleted" de ton composant WebBrowser ??
    Si tu parles de la boucle censé afficher le msgbox, je viens d'essayer, mais aucun message n'apparait

  16. #16
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par haxball47 Voir le message
    Si tu parles de la boucle censé afficher le msgbox, je viens d'essayer, mais aucun message n'apparait
    o_O ... Non je ne parle pas de boucle.... o_O

    Un gestionnaire d'évènements

    WebBrowser.DocumentCompleted

  17. #17
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour

    Citation Envoyé par haxball47 Voir le message
    Pol63 : Après une petite recherche, je suis tomber sur un post disant que microsoft.mshtml n'était plus utilisé depuis vb 2005, j'ai cependant dans COM réussi à trouver "microsoft html object library", je ne comprend cepandant pas comment utilisé tout ça, j'ai encore des progrès à faire :/
    Je suis allé sur http://msdn.microsoft.com/fr-ca/default.aspx

    j'ai mis "microsoft.mshtml" en pâture au moteur de recherche (en haut et à droite de la page)

    En cliquant sur le 2e lien des réponses et en lisant la première réponse à la question, je suis arrivé là:

    http://www.dlldll.com/microsoft.msht..._download.html

    Ne jamais oublier MSDN...
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  18. #18
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2013
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 235
    Points : 359
    Points
    359
    Par défaut
    Re:

    @wallace:
    Si tu parles de la boucle censé afficher le msgbox, je viens d'essayer, mais aucun message n'apparait
    o_O ... Non je ne parle pas de boucle.... o_O
    Je crois qu'il parlait de mon code...

    @haxball47:
    le code source de la page traduite, ... msgbox vide, imcomprehensible
    Si tu parles de cette page je n'y ai trouvé aucun
    <span class="hps">
    ni de 'dzieki' d'ailleurs...
    il va falloir chercher ailleurs

    Par contre la dll de @clementmarcotte laisse à réfléchir et à explorer également, notamment la fonction 'mshtml._FINDTEXT_FLAGS' (que j'ai rapidement aperçu)
    Par nature les mots, ils sont flous, c'est une fois alignés qu'ils se précisent.

  19. #19
    Nouveau membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2013
    Messages : 34
    Points : 25
    Points
    25
    Par défaut
    Wallace :

    J'entendais par boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For Each c in ParseBetween(WebBrowser2.DocumentText, "<span class=""hps"">", "</span>") 
                   MsgBox(c)
               Next
    Comme je l'ai dis, mon niveau en VB.NET n'est pas top, j'ai tenté de mettre cette boucle For comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        Private Sub WebBrowser2_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser2.DocumentCompleted
            For Each c In ParseBetween(WebBrowser2.DocumentText, "<span class=""hps"">", "</span>")
                MsgBox(c)
            Next
        End Sub
    La fonction ParseBetween étant déclarer juste au dessus.

    clementmarcotte : Merci pour ta recherche, mais cela ne craint pas (niveau virus) de prendre une dll comme cela ? (Mode parano activé)

    wallace :
    Si tu parles de cette page je n'y ai trouvé aucun ni de 'dzieki' d'ailleurs...
    il va falloir chercher ailleurs
    Je crois que t'as mis le doigt sur un point étrange effectivement,
    1 - Lorsque j'enregistre la page sur mon pc, j'ai la balise + la traduction
    2 - En utilisant cette fonction, elle m'a bien trouver la traduction depuis WebBrowser2.DocumentText
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        Public Function FindMyText(text As String) As Boolean 
            Dim returnValue As Boolean = False 
            If text.Length > 0 Then 
                Dim indexToText As Integer = richTextBox1.Find(text)
                If indexToText >= 0 Then
                    returnValue = True 
                End If 
            End If 
            Return returnValue
        End Function
    3 - Lorsque l'on enregistre pas la page, et que l'on cherche à voir la source via clic droit -> "code source de la page", effectivement, il n'y a rien oO, alors qu'avec l'exstension view source charte, j'obtiens ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <span id="result_box" class="short_text" lang="fr">
    <span class="hps">
    merci
    </span>
    </span>
    Une idée ?

  20. #20
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    @Haxball47 :

    Ce n'est pas moi qui ai mis le doigt dessus mais ACIVE_CS et je plussois car après avoir affiché le code source il n'y a aucune occurence qui fait l'objet de cette création de topic....Comme le dit ACTIVE_CS il faut explorer une autre solution .....

    A+

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 8
    Dernier message: 21/02/2008, 09h23
  2. recupérer une chaine de caractères entre guillements
    Par glouffy6 dans le forum Langage
    Réponses: 2
    Dernier message: 11/07/2007, 15h08
  3. passer une chaine de caractère entre client et serveur COM
    Par ali.ensi dans le forum Visual C++
    Réponses: 7
    Dernier message: 28/03/2007, 17h30
  4. Réponses: 4
    Dernier message: 03/01/2007, 10h39
  5. Réponses: 9
    Dernier message: 31/05/2005, 14h34

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