[VB2005] Recherche d'une chaine bien defini

Résolu
Signaler
Messages postés
18
Date d'inscription
mercredi 7 février 2007
Statut
Membre
Dernière intervention
4 juillet 2008
-
Messages postés
553
Date d'inscription
jeudi 28 novembre 2002
Statut
Membre
Dernière intervention
2 octobre 2016
-
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

Messages postés
939
Date d'inscription
vendredi 25 octobre 2002
Statut
Membre
Dernière intervention
27 janvier 2009
2
irsoy :
http://lgmorand.developpez.com/dotnet/regex/

Hvb aka Batto
bato.ltd at gmail.com
Messages postés
18
Date d'inscription
mercredi 7 février 2007
Statut
Membre
Dernière intervention
4 juillet 2008

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+
Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
11
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:
Messages postés
939
Date d'inscription
vendredi 25 octobre 2002
Statut
Membre
Dernière intervention
27 janvier 2009
2
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
Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
11
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:
Messages postés
18
Date d'inscription
mercredi 7 février 2007
Statut
Membre
Dernière intervention
4 juillet 2008

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+
Messages postés
939
Date d'inscription
vendredi 25 octobre 2002
Statut
Membre
Dernière intervention
27 janvier 2009
2
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
Messages postés
18
Date d'inscription
mercredi 7 février 2007
Statut
Membre
Dernière intervention
4 juillet 2008

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+
Messages postés
2
Date d'inscription
lundi 20 novembre 2006
Statut
Membre
Dernière intervention
2 juillet 2007



Messages postés
553
Date d'inscription
jeudi 28 novembre 2002
Statut
Membre
Dernière intervention
2 octobre 2016
1
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