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

Windows Mobile .NET Discussion :

[C# 1.1] Comment récupérer du texte entre des mots connus ?


Sujet :

Windows Mobile .NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 36
    Points : 20
    Points
    20
    Par défaut [C# 1.1] Comment récupérer du texte entre des mots connus ?
    Je fais actuellement un stage et j'apprend le C#.

    Pour mon programme j'aurais besoin de savoir comment faire pour recupérer le texte qu'il y a entre deux mot connu et aussi récupérer le texte apres ces mots.

    Du type:
    Mot connu début Texte 1 a récupérer Mot fin connu Texte 2 a récupérer.
    Si possible avec un regex j'ais trouver comment modifier le texte entre les deux mot mais pas comment le récupérer dans deux varaible différentes.

    Merci de votre aide.

    De plus je dois utiliser la version 1.1 du compact framwork.

    Pour le moment j'ais sa:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    
    string pattern = string.Format("((IF)|(si))(.*?)((GOTO)|(goto))(.*?)");
    Regex regex = new Regex(pattern, RegexOptions.Singleline);

  2. #2
    Membre éclairé Avatar de zeavan
    Architect
    Inscrit en
    Avril 2003
    Messages
    590
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Autre

    Informations professionnelles :
    Activité : Architect

    Informations forums :
    Inscription : Avril 2003
    Messages : 590
    Points : 774
    Points
    774
    Par défaut
    sinon tu peux aussi faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    string connu1="debut";
    string connu2="fin";
     
    string text="bonjour le debut de la fin";
    int deb=text.indexof(connu1);
    int fin=text.indexof(connu2);
    string result=text.substring(deb,fin);

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 36
    Points : 20
    Points
    20
    Par défaut re
    Bon alors cela ne fonctionne pas comme je le voudrais.

    Alors je vais mieux m'expliquer:

    J'ais un texte sous format string. on va l'appeller text.
    dans se string je dois récupérer le texte qui est entre deusx mot connu et le texte d'apres ces deux mots.

    Ex:
    blabla Mot connu 1 Texte1 a prendre mot connu 2 Texte 2 a prendre.
    Et le code du dessus m'affiche toujour les deux mot connu.

  4. #4
    Membre actif Avatar de toniolol
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2005
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 281
    Points : 296
    Points
    296
    Par défaut
    Salut,
    je te propose ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Dim txt As String = "blabla Mot connu 1 Texte1 a prendre Mot connu 2
     Texte 2 a prendre"
    Dim s1() As String = Split(txt, "Mot connu 1")
    Dim s2() As String = Split(s1(1), "Mot connu 2")
    Dim NewTxt As String = s2(0) & s2(1)
    MessageBox.Show(NewTxt)
    Peut-être un peu bourrin mais efficace....avec ton exemple. (Attention à la casse)
    Pensez aux règles et au qui rime avec !

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 36
    Points : 20
    Points
    20
    Par défaut
    Ca ressemble pas a du C#?

    C'est du Vb non?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    string s1 = line.Split("IF");
    string s2= s1.Split("GOTO");
    string NewTxt= s2 & s2;
    txt.Text= NewTxt;
    Mais cela ne foiinctionne pas la fonction Split me dis argument non valide.

  6. #6
    Membre actif Avatar de toniolol
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2005
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 281
    Points : 296
    Points
    296
    Par défaut
    Citation Envoyé par foolsky
    Ca ressemble pas a du C#?
    C'est du Vb non?
    Vu j'avais pas vu !
    Sinon pour ton souci c'est que l'on utilise pas la même fonction split.
    J'utilise certainement une référence VB depuis le début sans m'en être rendu compte.
    Je ne peux pas plus t'aider, car la méthode split que tu utilises attends pour délimiteur un char.
    Edit :
    Désolé c'est midi .
    En attendant je peux te proposer ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    txt.Substring(txt.IndexOf("Mot connu 1 ")).Replace("Mot connu 1",
     "").Replace("Mot connu 2", "");
    mais ce n'est vraiement pas propre...
    Pensez aux règles et au qui rime avec !

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 36
    Points : 20
    Points
    20
    Par défaut
    C'est presque parfait.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    /* Récupère la valeur entre If et GOTO et la donner d'apres.*/
    string fi = line.Substring(line.IndexOf("IF")).Replace("IF", "").Replace
    ("GOTO", "")+ "\r\n";
    txt.Text += fi;
    string[] s1 = fi.Split(':');
    txt.Text += "Debut= "+s1[0]+"\r\n";
    txt.Text += "Fin= "+s1[1]+"\r\n";
    voila cela fontionne comme ça merci en fait comme j'est un : apres le goto je m'en sert pour séparer mes valeurs.

    Maintenant j'ais un autre problème:

    Je veut mettre se texte qui est ma condition dans la condition d'un if .
    Mais le probleme c'est quil me dis qu'il ne peut convertir le string en bool.

    Le texte est une syntaxe réele du C par ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    string s1 = "SW != 9000";
     
    if (s1)
    blabla;
    comment lui faire admettre mon texte comme si c'etai du code?

  8. #8
    Membre éclairé Avatar de zeavan
    Architect
    Inscrit en
    Avril 2003
    Messages
    590
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Autre

    Informations professionnelles :
    Activité : Architect

    Informations forums :
    Inscription : Avril 2003
    Messages : 590
    Points : 774
    Points
    774
    Par défaut
    http://www.developpez.net/forums/showthread.php?t=81242
    va voir ici ca repond peut-etre a ta question.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 36
    Points : 20
    Points
    20
    Par défaut
    Ca aurais pu etre bon mais la librairie ne fonctionne pas sous compact framework 1.1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if( s1[0] == " SW != 9000")
    if (SW != 9000)
    gotO = s1[1];
    else
    txt.Text += "ERREUR IF SW <>\r\n";
    else
    txt.Text += "ERREUR s1 <>IF \r\n";
    J'essaye sa du coup puis que je connais la valeur qui doit etre retroune et je pense pas qu'il y en aura beaucoup de code type.

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

Discussions similaires

  1. vb.net comment récupérer du texte entre deux "\'"
    Par infodes dans le forum VB.NET
    Réponses: 3
    Dernier message: 29/10/2014, 12h11
  2. [RegEx] Comment récupérer le texte entre deux motifs ?
    Par whitespirit dans le forum Langage
    Réponses: 6
    Dernier message: 25/03/2010, 21h59
  3. Récupérer le texte entre deux mots
    Par Ramdoulou dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 11/08/2008, 16h48
  4. Réponses: 2
    Dernier message: 25/06/2008, 23h19
  5. [RegEx] Comment récupérer du texte entre balises <font> ?
    Par leboy dans le forum Langage
    Réponses: 3
    Dernier message: 11/04/2007, 18h03

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