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 :

Caractère nul erreur [Débutant]


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2012
    Messages : 31
    Points : 24
    Points
    24
    Par défaut Caractère nul erreur
    Bonjour à tous !

    Je fais un code qui est suposé traiter une chaîne de caractère et la purifier. Ça marche bien sauf que j'ai une erreur à la con et j'arrive pas à trouver pourquoi... Quand je remplace les caractère indésirés par un espace (" ") ça marche mais quand je remplace par un caractère vide("") ma fonction me retourne rien / du vide... 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
    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
     
     
        Public Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim texteAPurifier As String = "=?iso-8859-1?Q?Biblioth=E8que_-_Poste__-_Fermeture_non_plani?= =?iso-8859-1?Q?fi=E9e?= "
            Dim retour As String
            retour = clearcode(texteAPurifier)
            MsgBox(retour)
        End Sub
     
     Public Structure Code
            Dim code As String
            Dim valeur As String
     End Structure
     
     Public Function clearcode(ByVal texteAPurifier As String)
            Dim tableau As Array
            Dim encode(2) As Code
            encode(0).code = "E9"
            encode(1).code = "C0"
            encode(0).valeur = "é"
            encode(1).valeur = "À"
     
            tableau = texteAPurifier.ToString.ToArray
            Dim longueur = texteAPurifier.ToString.Length
            For i = 0 To longueur - 4
                If tableau(i) = "=" And tableau(i + 1) = "?" And tableau(i + 2) = "i" And tableau(i + 3) = "s" Then
                    tableau(1 - 1) = " "
                    tableau(i) = " "
                    tableau(i + 1) = " "
                    tableau(i + 2) = " "
                    tableau(i + 3) = " "
                End If
                For j = 0 To 2
                    If tableau(i + 1) + tableau(i + 2) = encode(j).code Then
                        tableau(i) = " "
                        tableau(i + 1) = " "
                        tableau(i + 2) = encode(j).valeur
                    End If
                Next j
                If tableau(i) = "?" And tableau(i + 1) = "=" Then
                    tableau(i) = " "
                    tableau(i + 1) = " "
                End If
            Next i
            Return tableau
        End Function
    Merci d'avance

  2. #2
    Membre éclairé Avatar de -N4w4k-
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Novembre 2011
    Messages : 545
    Points : 801
    Points
    801
    Par défaut
    Salut,

    tu peux faire comme ça:
    Code : 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
        Function TransformString(ByVal txt As String) As String
     
            TransformString = txt.Substring(0, txt.Length - 4)
     
            Dim remplacements As New Dictionary(Of String, String)
            remplacements.Add("E9", "é")
            remplacements.Add("C0", "À")
            remplacements.Add("=?is", "")
            remplacements.Add("?=", "")
     
            For Each kv As KeyValuePair(Of String, String) In remplacements
                While TransformString.Contains(kv.Key)
                    TransformString = TransformString.Replace(kv.Key, kv.Value)
                End While
            Next
     
            TransformString &= txt.Substring(txt.Length - 4, 4)
     
        End Function
    J’ai des questions à toutes vos réponses!

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2012
    Messages : 31
    Points : 24
    Points
    24
    Par défaut
    Trop fort ça marche nickel

    Merci beaucoup

  4. #4
    Membre éclairé Avatar de -N4w4k-
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Novembre 2011
    Messages : 545
    Points : 801
    Points
    801
    Par défaut
    De rien ^^

    Je pense que tu vas devoir la modifier un peu parce qu'il y a des choses qui me paraissent bizarre comme le remplacement de "?=is" par "" qui fait que qu'on passe de "?=iso-8859-1" à "o-8859-1", il reste un espace à la fin, etc.

    En tout cas le principe y est.

    Bon code.
    J’ai des questions à toutes vos réponses!

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

Discussions similaires

  1. [WD5.5] Caractère NUL dans chaine de caractère
    Par rems033 dans le forum WinDev
    Réponses: 0
    Dernier message: 06/07/2009, 11h29
  2. Caractère pipe ( | ) & erreur de fonction
    Par mensoif dans le forum Langage
    Réponses: 5
    Dernier message: 15/06/2009, 12h45
  3. Affichage des caractères nuls en début d'une chaine de caractère
    Par Saly2008 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/10/2008, 10h48
  4. des caractères "nul" dans mon fichier !
    Par warning dans le forum C++
    Réponses: 1
    Dernier message: 10/04/2007, 14h50
  5. [c#] caractère nul
    Par damned3 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 22/11/2006, 19h53

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