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

ASP.NET Discussion :

Trouver une chaine dans une chaine


Sujet :

ASP.NET

  1. #21
    Membre régulier
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2011
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2011
    Messages : 53
    Points : 83
    Points
    83
    Par défaut
    Citation Envoyé par zooffy Voir le message
    J'ai pas mis le test.add(y) parce que je n'ai pas capté comment l'utiliser.
    C'est la partie la plus importante, en faite on va enregistrer dans une liste tous les mots que tu aimerais remplacer,
    ensuite il suffit de récupérer les valeurs de la liste pour les passer dans ta méthode et avec les valeurs de retour tu fais un simple replace

  2. #22
    Membre actif
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 220
    Points : 268
    Points
    268
    Par défaut
    En fait, ce que mon bout de code fait, c'est qu'il récupère dans une liste les valeurs situées entre ##
    Ainsi pour "le lien vers ##contactIti## est à modifier ##autrechose## à remplacer aussi"

    on aura:
    test[0] = "contactIti"
    test[1] = "autrechose"

    et dans le code que tu as transcrit, il faut une copie de s sur laquelle travailler. Dans mon exemple je prends S qui est une valeur d'une textbox, du coup je peux travailler sur S et réutiliser le texte de la textbox plus tard.

    Mais comme dis, avec les Regex ca me semble pas mal non plus

  3. #23
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Citation Envoyé par zooffy Voir le message
    @Nathanael : merci pour ton aide. Heu, j'en fait quoi du bout de code ?
    Ben j'ai juste juste changé le [a-z] en \w dans ta regex enfait
    Du coup tu utilises ca dans le code que t'avais déjà

    Explication: [a-z] signifie tous les caractères entre a et z (uniquement des minuscules
    \w correspond à [A-Za-z0-9] donc tous les caractères entre a et z (majuscules et minuscules) et les chiffres.

  4. #24
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    @Nathanael : ok, merci pour l'explication, je n'avais pas compris ça au départ.
    Par contre, je ne vois toujours pas comment je récupère la chaine entre les ## pour la convertir et la remplacer dans la chaine de base.


    @Papouuu et BuchsPa :
    Ok, j'ai capté et j'ai fait ç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
     
    Dim sbase As String = "le lien vers ##contactIti## est à modifier ##Accueil## à remplacer"
            Dim s As String = "le lien vers ##contactIti## est à modifier ##Accueil## à remplacer"
            Dim test As New List(Of String)
            For i As Int16 = 0 To s.Length
                If s.IndexOf("##") > 0 Then
                    Dim x As String = s.Substring(s.IndexOf("##") + 2)
                    Dim y As String = x.Remove(x.IndexOf("##"))
                    s = x.Substring(y.Length + 2)
                    test.Add(y)
                End If
            Next
            For Each sr As String In test
                sbase = Replace(sbase, "##" & sr & "##", Paragraphe.repTexte(sr))
            Next
            Response.Write(sbase)
    ça me remplace bien les chaine entre les ## et ça me met les valeurs que j'attend à la place.

    Maintenant si vraiment c'est mieux avec les expressions régulières, je suis preneur, mais je comprends pas comment travailler avec.

  5. #25
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Points : 1 646
    Points
    1 646
    Par défaut
    relis bien le tutorial tout est dedans. après tu peux chercher sur google un site qui vérifie les expressions régulières. ca se travaille les regexps. ca n'est pas évident au début. mais relis bien et tu comprendras.

  6. #26
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Ouaip, j'en suis à 10 lectures et je comprends pas plus, donc je crois que je vais abandonner l'idée, ça me fera gagner du temps, je pense.

  7. #27
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Points : 1 646
    Points
    1 646
    Par défaut
    qu'est ce qui te rebute? tu n'en avais pas fait au cours de tes études ou peut être dans les différents poste que tu as eu? il faut comprendre la syntaxe, tester pas mal. je concois qu'au debut ce soit hardu mais une fois que tu en auras fait quelques unes tu verras que c'est plutot pas mal.

  8. #28
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Rien ne me rebute, c'est juste que je ne comprends pas et donc, lire une truc que tu ne comprends pas, ça sert pas à grand chose si tu n'as pas une explication à côté.

    En gros, c'est comme la prof d'allemand de mon fils :
    Mon fils : Madame, je n'ai pas compris la leçon
    La prof : relis là
    Mon fils, Madame, j'ai relu, mais je n'ai pas comrpis
    La prof : relis là
    Mon fils, Madame, j'ai encore relu, mais je n'ai toujours pas compris
    La prof, relis là

    Bref, mon fils à 1.5 de moyenne en allemand et il est pas plus con qu'un autre et les autres matières il a entre 10 et 15.

    Donc, j'ai beau lire et relir le tuto, je ne trouve pas comment on fait pour extraire la chaine entre les ## de la chaine globale pour l'envoyer en paramettre de ma fonction.

    Voilà, c'est tout

  9. #29
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    En fait, ca marcherait avec les regex si c'était toujours le même ordre. Mais manifestement ca n'est pas la bonne piste ici.

  10. #30
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Points : 1 646
    Points
    1 646
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    string machaine = "le lien vers ##contactIti## est à modifier ##Accueil## à remplacer";
    Regex reg = new Regex("##[\w]+##");
    Matches matches = reg.Matches(machaine);
    if(matches.Matches.Count>0)
    normalement tu devrais avoir plusieurs éléments à toi de chercher dedans.
    C'est un exemple. le code n'est ce dont je me souviens donc la syntaxe est fausse.

    Ca doit ressembler à ça en gros. tu tatonnes avec la syntaxe pour avoir ce que tu recherches.

    Ca te parle plus?

  11. #31
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Citation Envoyé par rattlehead Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    string machaine = "le lien vers ##contactIti## est à modifier ##Accueil## à remplacer";
    Regex reg = new Regex("##[\w]+##");
    Matches matches = reg.Matches(machaine);
    if(matches.Matches.Count>0)
    normalement tu devrais avoir plusieurs éléments à toi de chercher dedans.
    C'est un exemple. le code n'est ce dont je me souviens donc la syntaxe est fausse.

    Ca doit ressembler à ça en gros. tu tatonnes avec la syntaxe pour avoir ce que tu recherches.

    Ca te parle plus?
    Oui mais ca marche pas! Car a chaque occurence de ##Key## il faut qu'il récupère le Key en question et qu'il aille chercher une correspondance dans un dictionnaire (via une fonction) pour effectuer le remplacement.

  12. #32
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Oui, merci beaucoup.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  2. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  3. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  4. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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