none
Probleme de Casse Variable String RRS feed

  • Question

  • Bonjour

    Avez vous connaissance d un probleme avec la methode methodcompare.text lors d une recherche de caractere dans une variable ou un fichier text ?

    En effet malgre avoir declare la methodcompare en text, que ce soit au niveau du projet ou de la form la fonction instr ne me retourne aucune valeur alors que la chaine que je recherche se trouve bien dans la variable.... La seule difference notable est un probleme de casse, je recherche "A-Very-Englishman", dans ma variable la chaine existe mais sous la forme "A-very-Englishman"  selon msdn la methodecompre.text ne tiens pas compte de la casse, logiquement la recherche devrait etre positive or ce n est pas le cas....

    Mon os : Windows 7 edition familliale premium sp1  

    mes parametres au niveau langue : Francais (France)

    Avez vous une idee ?

    Merci de votre aide

    jeudi 19 décembre 2013 16:44

Réponses

  • Bonjour,

    À signaler que Instr retourne un integer.

    Dans l'exemple ci-dessous il retourne 21. Ce qui correspond au "A" de A-Very-Englishman dans chaine_1.

    Testé avec :

    chaine_2 = "A-Very-Englishman" retourne 21

    chaine_2 = "a-Very-Englishman" retourne 21

    chaine_2 = "A-very-Englishman" retourne 21

    PrivateSub Form1_Load(sender AsObject, e As System.EventArgsHandlesMe.Load         Dim chaine_1 AsString = "Titre de la chanson A-Very-Englishman dans l'ablum Englishman"

    Dim chaine_2 AsString = "A-Very-Englishman"

    Dim trouve AsInteger = InStr(chaine_1, chaine_2, CompareMethod.Text)         Debug.Print(trouve)

     End Sub
    
                           


    Jacques
    Si la réponse vous satisfait, n'oubliez pas de la proposer comme réponse. Merci

    • Marqué comme réponse Capricorne83 vendredi 20 décembre 2013 04:50
    vendredi 20 décembre 2013 03:46

Toutes les réponses

  • Bonjour,

    Pourriez-vous nous montrer le code qui cause problème ?

    Merci


    Jacques
    Si la réponse vous satisfait, n'oubliez pas de la proposer comme réponse. Merci

    jeudi 19 décembre 2013 23:07
  • bonsoir voila le code riend e bien extraordinaire

    Dim ChaineaRechercher As String = "covers_temp/covers3/" & TitreaChercher

     dim trouve As String = InStr(1, CodeSrc, ChaineaRechercher, CompareMethod.Text)

                If trouve Then
                    For I = trouve To trouve + 1000
                        Caractere = Mid(CodeSrc, I, 1)
                        If Caractere = "=" Then Exit For
                        PhotoJaquette = PhotoJaquette & Caractere
                    Next
                End If

    jeudi 19 décembre 2013 23:36
  • Bonjour,

    Je pensais voir l'exemple qui ne fonctionne pas.

    Peu importe, on peut parfois éviter les problèmes en mettant les chaines à comparer en minuscules ou en majuscules. (ToLower, par exemple pour le minuscules)

    De cette façon , on compare deux string ou chaines en minuscules.

     Pour reprendre votre exemple : A-Very-Englishman

    Chaine_1 = A-Very-Englishman

    Chaine_2 = A-VeRy-EnGliShMan

    Chaine_1.ToLower = Chaine_2.ToLower



    Jacques
    Si la réponse vous satisfait, n'oubliez pas de la proposer comme réponse. Merci


    • Modifié Paraglider vendredi 20 décembre 2013 00:35
    vendredi 20 décembre 2013 00:32
  • RE

    mais c est l exemple qui ne fonctionne pas...

    j ai deja essaye le lcase et le ucase sans succes...... meme probleme...

    vendredi 20 décembre 2013 02:59
  • Bonjour,

    À signaler que Instr retourne un integer.

    Dans l'exemple ci-dessous il retourne 21. Ce qui correspond au "A" de A-Very-Englishman dans chaine_1.

    Testé avec :

    chaine_2 = "A-Very-Englishman" retourne 21

    chaine_2 = "a-Very-Englishman" retourne 21

    chaine_2 = "A-very-Englishman" retourne 21

    PrivateSub Form1_Load(sender AsObject, e As System.EventArgsHandlesMe.Load         Dim chaine_1 AsString = "Titre de la chanson A-Very-Englishman dans l'ablum Englishman"

    Dim chaine_2 AsString = "A-Very-Englishman"

    Dim trouve AsInteger = InStr(chaine_1, chaine_2, CompareMethod.Text)         Debug.Print(trouve)

     End Sub
    
                           


    Jacques
    Si la réponse vous satisfait, n'oubliez pas de la proposer comme réponse. Merci

    • Marqué comme réponse Capricorne83 vendredi 20 décembre 2013 04:50
    vendredi 20 décembre 2013 03:46
  • Re

    Effectivement j avais remarque pour le instr as integer et non as string

    j ai corrige le probleme. Et j ai trouve la solution. Cela provenait d'une erreur lors du "remplissage" de la variable CodeSrc.......

    Merci.

    vendredi 20 décembre 2013 04:50