[VB2005] Recherche d'une chaine bien defini

Résolu
irsoy Messages postés 18 Date d'inscription mercredi 7 février 2007 Statut Membre Dernière intervention 4 juillet 2008 - 9 mars 2007 à 10:18
troxsa Messages postés 553 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 2 octobre 2016 - 9 mars 2007 à 14:14
Svp mes amis,
     Mon probleme c'est que :
Je veut chercher une chaine ben definitexte de forme bien defini. La chaine doit avoir la forme "TUxxxx" sachon que les xxxx sont des nombres allons de 0000 à 9999.
Exp de texte:
        SSM
        UTC
        02MAR99999E001/01JAN07 24MAR07
        RPL
        TU606
        16MAR07 16MAR07 5
        C 735 Y126.Y126
        NCE0605 TUNO0800
        //
        NEW
        TU814
        16MAR07 16MAR07 5
        C 735 Y126.Y126
        TUNO0900 CAI1050
        //
        SI LCT CHTR ADD P/C SPRINTOURS S/RESERVE ACC ENAC STP SLTS A BERHOUMA

Etape 2: C'est de mettre Juste avant les"//"une nouvelle ligne selon
                                - La "TUxxxx" trouvée. Ex:TU814
                                - La ligne avant les "//". Ex:TUNO0900 CAI1050

PAR Exemple:
            TU814    correspand à MS9814
            TU606    correspand à UX3084

ALORS, le texte devien:

        SSM

        UTC

        02MAR99999E001/01JAN07 24MAR07

        RPL

        TU606

        16MAR07 16MAR07 5

        C 735 Y126.Y126

        NCE0605 TUNO0800
       NCETUN 878/UX3084

        //

        NEW

        TU814

        16MAR07 16MAR07 5

        C 735 Y126.Y126

        TUNO0900 CAI1050
         TUNCAI 878/MS9814

        //

        SI LCT CHTR ADD P/C SPRINTOURS S/RESERVE ACC ENAC STP SLTS A BERHOUMA

Merci pour votre aide. C'est très Urgent SVP
-----------------------------------------------
En Informatique, tout est possible...
mais...
A+

10 réponses

hvb Messages postés 939 Date d'inscription vendredi 25 octobre 2002 Statut Membre Dernière intervention 27 janvier 2009 3
9 mars 2007 à 11:18
irsoy :
http://lgmorand.developpez.com/dotnet/regex/

Hvb aka Batto
bato.ltd at gmail.com
3
irsoy Messages postés 18 Date d'inscription mercredi 7 février 2007 Statut Membre Dernière intervention 4 juillet 2008
9 mars 2007 à 14:12
Drikce 06 & HVB, vous m'avez aider beaucoup, je vous remerci une autre foi. j'ais arrivé enfin de trouver la bonne solution. si vous avez d'autre, vous ete les bienvenu.


SOLUTION:





Dim Telex$ = My.Computer.FileSystem.ReadAllText("c:\fichier.txt")
Dim TabTELEX$() = Split(Telex, vbCrLf)
For i = 0 To TabTELEX.Length - 1
    If TabTELEX(i).ToString Like "TU###" = True

OrElse TabTELEX(i).ToString Like "TU####" = True Then
        SovTexte &= TabTELEX(i).ToString & vbCrLf
    End If
Next




-----------------------------------------------
En Informatique, tout est possible...
mais...
A+
3
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
9 mars 2007 à 10:35
Salut,

1) fonction right, mid, left, split, instr etc

2)C'est dans un fichier texte?

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
hvb Messages postés 939 Date d'inscription vendredi 25 octobre 2002 Statut Membre Dernière intervention 27 janvier 2009 3
9 mars 2007 à 10:54
toutes les fonction que tu evoque Drikce06, sont des fonctions vb6.

irsoy :
En .net, pour trouver l'index d'une chaine dans une autre, utilise :
ChaineSource.IndexOf(LaChaineAChercher)
Pour extraire une chaine dans une autre :
ChaineSource.Substring(IndexDeDebutDeSousChaine,TailleDeLaSousChaine)
Et comme le dit Drikce, peut être qu'il serait judicieux de travailler ligne par ligne en fesant un Split avec comme argument un retour chariot.
Cependant, dans ton cas l'utilisation d'expressions régulière (regex) peut surement t'aider.

Hvb aka Batto
bato.ltd at gmail.com
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
9 mars 2007 à 10:58
Et qui marche très bien aussi en point .Net car ceux des fonctions .Net aussi!

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
irsoy Messages postés 18 Date d'inscription mercredi 7 février 2007 Statut Membre Dernière intervention 4 juillet 2008
9 mars 2007 à 11:15
Comment je peut utiliser les expressions régulière (regex) pour:
- Une chaine contenant des caractaires+des Nombres.
Exp: TU606

Merci pour vous:
                            Drikce 06
                            HVB
-----------------------------------------------
En Informatique, tout est possible...
mais...
A+
0
hvb Messages postés 939 Date d'inscription vendredi 25 octobre 2002 Statut Membre Dernière intervention 27 janvier 2009 3
9 mars 2007 à 11:15
right, left, mid et instr ne sont pas des fonctions .net
Elles marchent sur un projet de base crée par Visual Studio, mais ceci est du à l'import de la réference Microsoft.VisualBasic,
qui est innacessible en c# , et donc à bannir dés que possible.

Hvb aka Batto
bato.ltd at gmail.com
0
irsoy Messages postés 18 Date d'inscription mercredi 7 février 2007 Statut Membre Dernière intervention 4 juillet 2008
9 mars 2007 à 12:31
Pour la chaine TU606, elle:
- A la forme TUxxxx,
- Est Alphanumerique,
- Commance par "TU" en majuscule: ^(TU)
- Contien xxxx qui est un chifre: appartien à un intervale [0000-9999]
- Se fini par un retour à la ligne: VbCrlf

Le question c'est: Comment je peut ecrire le syntaxe

Merci HBV pour le site
-----------------------------------------------
En Informatique, tout est possible...
mais...
A+
0
hlil Messages postés 2 Date d'inscription lundi 20 novembre 2006 Statut Membre Dernière intervention 2 juillet 2007
9 mars 2007 à 13:41


0
troxsa Messages postés 553 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 2 octobre 2016 1
9 mars 2007 à 14:14
Salut,

Si tu telecharge les 101 exemples vb 2005 de microsoft dedans tu as un exemple sur l'utilisation de RagEx
il me semble de tete pour trouver ce que tu recherche ça serait
^(TU\d) le "\d" veux dire tout ce qui est decimal ou numérique je crois
juste apres tu peux utiliser le point "." pour lire tout ce qui est apres ..., puis utiliser la propriété Remplace de ta fonction RegEx pour ré-écrire ce que tu veux !

Cordialement,

http://www.troxsa.info/
Le site qui ne parle qu'un seul langage, visual basic 2005
0
Rejoignez-nous