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 :

substitution de chaîne de caracteres


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Par défaut substitution de chaîne de caracteres
    Bonjour,

    Je voudrais vérifier que dans ma chaîne existe au moins un des éléments de la séquence suivante :
    janv-,févr-,avr-,juil-,sept-,oct-,nov-,déc-

    pour la remplacer par :
    janv.-,févr.-,avr.-,juil.-,sept.-,oct.-,nov.-,déc.-

    Si j'ai janv- je veux mettre janv.- ect ....

    Merci de de votre aide

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2008
    Messages : 231
    Par défaut
    tu peux faire un dico<string,string> ou la clef est la chaîne que tu cherches et la valeur la chaine par laquelle tu veux la remplacer.
    Exemple : monDico["janv-"] = "janv.-";

    etc. monDico.TryGetValue(maChaine, out maChaine) == true (alors remplacer) si == false alors pas trouver dans le dico

    L'avantage de cette solution c'est que ton dictionnaire peut être chargé par un source externe (fichier xml). C'est une solution dynamique.

    En revanche si ton pattern ne changera pas (c'est à dire de janv- vers janv"."- alors dans ce cas tu peux juste faire maChaine = maChaine.Remove("-") + ".-";
    Mais c'est une solution statique.

  3. #3
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Par défaut
    bonjour,

    cette solution ne me convient pas car je souhaite faire une recherche de séquence de chaine dans un chaine pour être précis en vu de remplacer la séquence rechercher par une autre.

    Cette méthode m'aura permis néanmoins d’approfondir mes connaissances sur les dictionnaires.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 194
    Par défaut
    Citation Envoyé par shaun_the_sheep Voir le message
    Bonjour,

    Je voudrais vérifier que dans ma chaîne existe au moins un des éléments de la séquence suivante :
    janv-,févr-,avr-,juil-,sept-,oct-,nov-,déc-

    pour la remplacer par :
    janv.-,févr.-,avr.-,juil.-,sept.-,oct.-,nov.-,déc.-

    Si j'ai janv- je veux mettre janv.- ect ....

    Merci de de votre aide
    Je comprend pas vraiment ce que tu veux.

    Ben la ce que tu demandes c'est simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mystring = mystring.Replace("-",".-")

  5. #5
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Par défaut
    Merci à vous ....

    Ma chaîne contient n'importe quoi et parfois : une date au format MMM-yy
    ou MMM est le mois court mais qui ne correspondant pas en C# car par exple pour juillet j'ai : juil-08 et pas juil.-08.

    J'ai une solution ... j'ai repris l'idée du dictionnaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
                //Dictionaire des mois court en francais
                Dictionary<string, string> shortmonthDic = new Dictionary<string, string>();
                for (int boucle = 1; boucle < 13; boucle++)
                {   DateTime MyDate = new DateTime(DateTime.Now.Year, boucle, 1, 0, 0, 0);
                    String MyString = MyDate.ToString("MMM");
                    shortmonthDic.Add(MyString.Replace(".", "")+"-", MyString+"-");
                }
    Il est alimenté avec mes paires MMM- et MMM.- (MMM étant le mois en libelle court)

    Puis je traite ma chaine comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    //Traitement spéciale pour date avec mois court
                                        foreach (KeyValuePair<string, string> findStringPair in shortmonthDic)
                                        {
                                            if (cellValue.Contains(findStringPair.Key) == true)
                                            { cellValue=cellValue.Replace(findStringPair.Key, findStringPair.Value); }
                                        }
    donc je parcours ma dictionnaire et je cherche si ma chaine contient ma clé si oui je remplace ma clé par ma valeur ....

  6. #6
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 194
    Par défaut
    ben le simple string.Replace ca aurait suffit
    et un string.Split(",");

  7. #7
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Par défaut
    Oui c'est ce que j'ai fait ... dans une boucle à la différence c'est que je teste la présence de ma chaîne ce qu'un split ne fait pas.

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

Discussions similaires

  1. stocker chaîne de caracteres dans une variable
    Par coachbob44 dans le forum Langage
    Réponses: 2
    Dernier message: 11/01/2007, 17h45
  2. Permuter les bits d'une chaîne de caractere
    Par Menontona dans le forum C
    Réponses: 14
    Dernier message: 13/09/2006, 15h30
  3. longueur chaîne de caractere
    Par jmjmjm dans le forum Langage
    Réponses: 2
    Dernier message: 26/02/2006, 23h29
  4. Différence entres chaînes de caracteres
    Par Oberown dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 18/02/2006, 11h53
  5. [String] Substitution de chaînes
    Par nenoeil dans le forum Langage
    Réponses: 9
    Dernier message: 22/04/2004, 10h05

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