Repérage de Texte dans un fichier RT

Signaler
Messages postés
175
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
8 mai 2017
-
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
Bonjour,

Voila j' ai un probléme concernant le repérage de texte ( Numéros ) dans un fichier Rtf.

Dans mon fichier Rtf j' ai plusieurs colonnes, j' ai une liste de Numéros qui apparait dans une de ces colonnes.

J' aimerais récupérer tous ces Numéros et les afficher dans une listview.

J' arrive a peu prés à récuper ces memes numéros dans un fichier texte par rapport à leur position, je dit à peu prés car le texte avant ces numéros peut varier et donc cela me décale tout.

Merci par avance de l' aide que vous pourriez m' apporter ou de la direction à prendre pour résoudre ce probléme.

Fripouil

5 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Salut
Amusant
Tu nous parles de tes soucis mais comment veux-tu qu'on t'aide ne sachant pas comment tu procèdes actuellement ni à quoi ressemble le fichier !
"numéro" : S'agit-il de numéro ... de téléphone ?
Ont-ils des format particulier comme par exemple une série de numéros à deux chiffres séparés par des points (ou un caractère quelconque) ?
Si c'est le cas, tu peux scanner tous les caractères de ton texte et, quand tu rencontres un chiffre (0 à 9), tu vérifies si les caractères qui suivent peuvent ressembler à d'autres chiffres, en se basant ou pas sur un éventuel format de présentation.
Ce ne sont là que des idées.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
175
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
8 mai 2017

Merci et tu as raison, je n' ai pas était trés précis.


Ce sont des N° à 8 chiffres : dans ce format 01234567

Pour le moment j' arrive à lire le fichier Rtf comme du fichier txt et à remplir ma listview mais cela me donne plein de chiffres et de lettres bizarres ( je me doute qu' il y a surement un truc a convertir avant de remplir ma listview )

Voila comment ce compose mes fichiers RTF

Entête

Tableau :

Titre de la colonne         Titre de la 2éme colonne          titre de la 3éme colonne

01234567                        5486678                                   554545562
98765432                        0123458                                   489556564
01234569                        0244878                                   455456555

Ce sont les chiffres de la 2éme colonne qui m' interressent.

Voici ma méthode actuelle pour lire dans mon fichier TXT


Dim Line1()
As
String = IO.File.ReadAllLines(Txt_Etiquettes_01.Text)




' Parcourir chaque ligne du fichier










For





Each

Line


As





String





In

Line1 



' V‚rifier que la ligne commence par "N"








If

Line.StartsWith(


"N"

)


Then








' Enlever le d‚but inutile de la ligne


Line = Line.Substring(0).Trim








' Extraire le code








Dim

Code


As





String

= Line.Substring(0, 7).Trim



' Extraire l'heure








Dim

Time


As





String

= Line.Substring(0,9).Trim



' Cr‚er et ajouter l'item … la ListView








Dim

Item


As





New

ListViewItem(Code)Item.SubItems.Add(Time)

ListView_Etiquettes_01.Items.Add(Item)



End





If








NextAvec cette méthode ca marche bien




sauf que dans mon fichier TXT le texte avant les chiffres que je souhaite récupérer peut varier et donc cela me décale tout à chaque fois

Voila j' espére avoir était plus précis dans mes explications.

Fripouil
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Re
Désolé, je n'ai pas VB.Net sous la main mais je pense qu'il te suffit de parcourrir la ligne à la recherche du premier ciffre avant de commencer les extractions :
Avant d'extraire le Code :
Tu cherches depuis le premier caractère de la ligne jusqu'à trouver un chiffre entre 0 et 9.
Il doit, je pense, y  avoir une méthode "IsNumeric" ou un "Like  [0-9]" utilisable.
Une fois que tu as repéré l'index du premier chiffre dans ta ligne, il te servira à remplacer les 0 dans les SubString d'extraction.
Une chose m'étonne :
Tu fais deux SubString de suite sur la même ligne : le 1er pour extraire le "code" et le second pour extraire l'heure : bizarrement, tes deux SubString commencent à 0, donc le premier caractère de la ligne.
Erreur ou c'est moi qui interprète mal ?

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
175
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
8 mai 2017

Rebonjour,

et merci de ton aide

mais quelle est donc la différence entre un fichier txt et Rtf, l' encodage ?

Car avec le code ci dessus, j' obtiens des trucs du style : 4e4e0707

et oui y a une erreur dans les substrings, car quand j' ai copiés je faisais plusieurs essais de positions

Fripouil
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Re
Le TXT est le texte visible uniquement
Le RTF est ce même texte mais avec, en plus, toutes les commandes de mises en forme (polices, couleurs, ...)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)