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

C# Discussion :

Filtrage d'un String


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    BAC +3
    Inscrit en
    Octobre 2018
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : BAC +3

    Informations forums :
    Inscription : Octobre 2018
    Messages : 164
    Par défaut Filtrage d'un String
    Bonjour à tous !

    Voici mon problème. J'ai plusieurs listes comprenant des caractères prohibés? J'aimerai filtrer la valeur d'une textbox selon mes cratères prohibés. Et selon le caractère, automatiquement le remplacé.

    Tout cela en architecture MVC. Je ne sais pas trop comment faire. Voici mon existant :

    MODEL :

    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
     
    namespace ShellAgent.Model.Constant
    {
        class OriginFilter
        {
            /// <summary>
            /// List of prohibvalues of A
            /// </summary>
            /// <returns>List string explicit  </returns>
            public List<string> ReplaceA()
            {
                List<string> maList = new List<string>();
                maList.Add("á");
                maList.Add("â");
                maList.Add("à");
                maList.Add("ä");
                maList.Add("ã");
                maList.Add("å");
                maList.Add("Á");
                maList.Add("Â");
                maList.Add("À");
                maList.Add("Ä");
                maList.Add("Ã");
                maList.Add("Å");
     
                return maList;
            }
     
            /// <summary>
            /// List of prohibvalues of E
            /// </summary>
            /// <returns>List string explicit  </returns>
            public List<string> ReplaceE()
            {
                List<string> maList = new List<string>();
                maList.Add("é");
                maList.Add("ê");
                maList.Add("ê");
                maList.Add("è");
                maList.Add("ë");
                maList.Add("É");
                maList.Add("Ê");
                maList.Add("È");
                maList.Add("Ë");
     
                return maList;
            }
     
            /// <summary>
            /// List of prohibvalues of I
            /// </summary>
            /// <returns>List string explicit  </returns>
            public List<string> ReplaceI()
            {
                List<string> maList = new List<string>();
                maList.Add("í");
                maList.Add("î");
                maList.Add("ì");
                maList.Add("ï");
                maList.Add("Í");
                maList.Add("Î");
                maList.Add("Ì");
                maList.Add("Ï");
     
                return maList;
            }
     
            /// <summary>
            /// List of prohibvalues of O
            /// </summary>
            /// <returns>List string explicit  </returns>
            public List<string> ReplaceO()
            {
                List<string> maList = new List<string>();
                maList.Add("ó");
                maList.Add("ô");
                maList.Add("ò");
                maList.Add("ö");
                maList.Add("õ");
                maList.Add("Ó");
                maList.Add("Ô");
                maList.Add("Ò");
                maList.Add("Ö");
                maList.Add("Õ");
     
                return maList;
            }
     
            /// <summary>
            /// List of prohibvalues of U
            /// </summary>
            /// <returns>List string explicit  </returns>
            public List<string> ReplaceU()
            {
                List<string> maList = new List<string>();
                maList.Add("ú");
                maList.Add("û");
                maList.Add("ù");
                maList.Add("ü");
                maList.Add("Ú");
                maList.Add("Û");
                maList.Add("Ù");
                maList.Add("Ü");
     
                return maList;
            }
     
            /// <summary>
            /// List of prohibvalues of Y
            /// </summary>
            /// <returns>List string explicit  </returns>
            public List<string> ReplaceY()
            {
                List<string> maList = new List<string>();
                maList.Add("ý");
                maList.Add("ÿ");
                maList.Add("Ý");
                maList.Add("Ÿ");
     
                return maList;
            }    
     
        }
    Mon contrôleur où tous se doit se passer , à la fois l'identification ou pas du caractère prohibé et le remplacement :
    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
     
    namespace ShellAgent.Controller
    {
        internal class Filter
        {
            /// Model
            private readonly Model.Constant.OriginFilter _originReplace = new Model.Constant.OriginFilter();
     
            /// <summary>
            /// Take TextBoxID.text -> Check and Replace Prohibited Character 
            /// </summary>
            /// <param name="textValue"></param>
            /// <returns> Return correct TextBoxId.text </returns>
            public string CheckFilter(string textValue)
            {
                if (textValue.Contains( //Ici ajouter toute les listes pour voir si le mots connais un de ce caractères )
                {
                    // Si oui, alors tester si le mot a une caractere de la premiere liste (replaca_A par exemple) et remplacer le caractère par "a"
                    //                                                puis tester la seconde liste etc
                }
     
     
                return textValue;
     
            }
        }
    }
    Ma view Pas tellement importante mais dois recevoir le string vérifié par le contrôleur qu'il est nécessité une correction ou non :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TextBox_Id.Text = _filter.CheckFilter(TextBox_Id.Text);
    Je vous remercie !!

  2. #2
    Membre Expert
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 661
    Par défaut
    Bonjour,

    Pas besoin de te prendre la tête pour ça il existe une méthode pour effectuer ce que tu cherches à faire, en plus tu conserves la case de la lettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
            public static string CheckFilter(string text)
            {
                byte[] bytes;
     
                bytes = Encoding.GetEncoding("ISO-8859-8").GetBytes(text);
                string cleanedText = Encoding.UTF8.GetString(bytes);
     
                return cleanedText;
            }
    J'ai testé avec quasi tous les caractères que tu veux remplacer et ça à l'air de bien fonctionner, à vérifier par contre pour l'intégralité des lettres.

  3. #3
    Membre confirmé
    Homme Profil pro
    BAC +3
    Inscrit en
    Octobre 2018
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : BAC +3

    Informations forums :
    Inscription : Octobre 2018
    Messages : 164
    Par défaut
    Ecoute super merci beaucoup. Je vais faire ça alors

    J'ai déjà vu quelque part cela fait quoi ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    byte[] bytes;
     
    bytes = Encoding.GetEncoding("ISO-8859-8").GetBytes(text);
    Globalement qu'est ce qui ce passe, comment ça fonctionne ?

    Encore merci c'est cool

  4. #4
    Membre Expert
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 661
    Par défaut
    Bonsoir,

    C'est simple, tu récupères les caractères sous formes de bytes en précisant un encodage spécifique. (celui-là apparemment marche pas trop mal pour ce que tu veux faire). Comme il y a des concordances et des normes entre les différentes encodages qui font déjà ce que tu cherches à faire, autant utiliser ce travail fait en amont. Après je suis loin d'être un spécialiste en encodage mais c'est un sujet très intéressant et apparemment il y a pas mal de façon différentes de régler ton problème, toujours en utilisant des encodages différents.

  5. #5
    Membre confirmé
    Homme Profil pro
    BAC +3
    Inscrit en
    Octobre 2018
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : BAC +3

    Informations forums :
    Inscription : Octobre 2018
    Messages : 164
    Par défaut
    Bonjour, OK super merci pour les détails , j'ai testé et globalement ça prend un bon nombre de caractères . Je vais voir les autres encodage. Encore merci

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

Discussions similaires

  1. [débutant] pistes pour un filtrage de Strings
    Par frett dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 27/08/2006, 15h59
  2. éliminer un caractere d'un string
    Par no-vice dans le forum Langage
    Réponses: 5
    Dernier message: 09/08/2002, 14h55
  3. URGENT: retour de string
    Par Pinggui dans le forum CORBA
    Réponses: 4
    Dernier message: 15/07/2002, 09h47
  4. Réponses: 2
    Dernier message: 05/06/2002, 12h29
  5. String Grid et choix d'une couleur pour une ligne
    Par Gigottine dans le forum C++Builder
    Réponses: 12
    Dernier message: 17/05/2002, 15h23

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