Gaouenn
-
Modifié par Gaouenn le 19/05/2015 à 13:35
Gaouenn -
19 mai 2015 à 15:43
Bonjour,
________________________________________________________________
pour faire simple, je souhaite comparer, le titre d'une page html à une chaine (string) pour identifier la bonne page html.
________________________________________________________________
Voici la première partie à comparer dans la page html :
(<title>Box - Authentification</title>)
et la deuxième dans le programme en c#:
("Box - Authentification").
________________________________________________________________
Variables utilisées:
-
string leTitre = this.webBrowser1.DocumentTitle;
-
string maChaine = "Box - Authentification";
________________________________________________________________
J'ai utilisé les codes suivants qui ne trouvent pas l'égalité:
1 -
if (maChaine == leTitre)
...
2 -
if (maChaine.Equals(leTitre))
...
________________________________________________________________
Pour information:
- j'ai identifié la page par un autre moyen qui fonctionne.
- j'ai tenté, au cas ou,
- la bonne page est bien chargée dans webBrowser1 avec le bon titre au moment de la comparaison.
- les deux chaines ont le même nombre de caractères soit 22.
- en utilisant la méthode string.split et un delimiteur égal à "space" j'obtiens deux mots: (Box) et (- Authentification), le deuxième espace est donc mal identifié à cause de l'interprétation du Non-breaking space ...
________________________________________________________________
Merci pour vos idées à résoudre le problème et non à le contourner. :)
________________________________________________________________
Un replace de l'espace insécable en espace normal (je ne sais pas si c'est faisable, je suppose qu'il faut le bon code ascii)
Une regex
les strings étant un tableau de char, comparaison char par char avec gestion spécifique des espaces.
Par contre là dans ton message on ne voit pas le sigle & n b s p ;
Car le site l'interprête directement, est il bien présent dans ta ligne de titre?
Modérer m'amène à intervenir dans de nombreux posts, mais les seuls langages que je connaisses sont le C# et un peu de VB. Pour vos codes pensez à la coloration.
Réponse trouvée ->Question Résolue
Effectivement, pour le & n b s p, je m'en suis aperçu pour la fin du message et j'ai oublié le haut. En html cela ressemble à cela : <title>Box - & n b s p;Authentification</title> .
Pour la méthode du replace, j'y ai pensé mais non testé en attente d'une solution plus simple. Je comptais, même, ne garder que les caractères (sans espace ni autre chose) pour les deux chaines et ensuite les comparer.
Je ne connaissais pas la regex, à voir si cela peut apporter quelque chose.
Pour la comparaison char par char avec gestion spécifique des espaces, je vais approfondir si les deux méthodes du haut n'aboutissent pas.
Gaouenn
>
Whismeril
Messages postés18622Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention28 septembre 2023 19 mai 2015 à 14:54
:)
Tout dépend du niveau de celui qui pose la question et qui ignore pas mal de chose sur les instructions en C#.
Vu d'ici cela est effectivement très simple.
Gaouenn
>
Whismeril
Messages postés18622Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention28 septembre 2023 19 mai 2015 à 15:33
Le mot de la fin a été pour Whismeril.
Effectivement le code ci-dessous fonctionne parfaitement:
Whismeril
Messages postés18622Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention28 septembre 2023629
>
Gaouenn
19 mai 2015 à 15:40
De rien
Le plus dûr a été de trouver le char(160), mais google a été mon ami....
Whismeril
Messages postés18622Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention28 septembre 2023629
>
Whismeril
Messages postés18622Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention28 septembre 2023 19 mai 2015 à 15:41