EXTRAIRE TOUS LES MOTS D UN FICHIER TEXTE ET LES METTRE DANS UN TABLEAU

steph42160 Messages postés 18 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 30 octobre 2006 - 23 mars 2006 à 15:26
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 23 mars 2006 à 15:51
Salut a tous,
J'ai un problème j'aimerais extraire tous les mots d'un fichier texte 1 à 1 et ensuite les ranger dans un tableau de string afin de pouvoir les traiter ensuite. C'est un peu ce que fait la fonction split avec une zone de texte.
Si vous avez une idée la dessus prevenez moi c'est assez urgent.
merci d'avance.

7 réponses

NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
23 mars 2006 à 15:32
Bonjour

VB6 ou .NET?
Tu peux utiliser Split, un pour les lgnes et l'autre pour les mots.

Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
0
mcs2006 Messages postés 58 Date d'inscription dimanche 19 mars 2006 Statut Membre Dernière intervention 1 mai 2006
23 mars 2006 à 15:39
Salut,

Tu pourrais faire ça si ton fichier n'est pas trop gros :

Dim NumFic As Integer
Dim buffer As String
Dim tablo() As String

'récupère un n° de fichier libre
NumFic = FreeFile

'ouverture du fichier texte
Open "c:\temp\test.txt" For Input As #NumFic

'lecture du fichier texte entier
buffer = Input(LOF(NumFic), #NumFic)

'rangement dans le tableau
tablo = Split(buffer)

...
0
steph42160 Messages postés 18 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 30 octobre 2006
23 mars 2006 à 15:40
j utilise vb6. Je suis daccord pour utiliser split le problème est que j'aimerais trier le fichier texte directement c ad


parcourir le fichier texte et mettre directement les mots dans un tableau. je sais qu'il est possible d'extraire les lignes mais moi ce qui m'interesse ce sont les mots séparés par des espaces.

salut
0
PhilocheMan Messages postés 55 Date d'inscription jeudi 28 juillet 2005 Statut Membre Dernière intervention 23 mars 2006 1
23 mars 2006 à 15:45
Salut,
Avant d'insérer ton nouvel enregistrement dans ton tableau, tu peux utiliser un algo comme QuickSort pour le positionner à son bon emplacement.
0

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

Posez votre question
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
23 mars 2006 à 15:46
Bonjour

Donc un truc du genre :
'lTxt contient ton texte "brut"
lTxt=replace(lTxt,vbcrlf," ") 'changement des retours à la lignes en espace
lTxt=replace(lTxt," "," ") 'suppression des espaces doubles
dim ltMots as string() 'Déclaration du tableau
ltMots=split(lTxt," ") 'Récupérations des mots dans le tableau

Ce code ne supprime pas les .,:! etc.

Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
23 mars 2006 à 15:47
tu lis tout ton fichier, ensuite, un

sBuffer = Replace ( sBuffer, VbNewline, " ")
xMots = Split ( sBuffer, " ")

ca, c'est si tu ne veux tenir compte que des espaces (pas des virgules, et autres, parenthèses et symboles divers)
sinon, je suggère l'emploi de RegExp

Renfield
Admin CodeS-SourceS - MVP Visual Basic
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
23 mars 2006 à 15:51
http://www.vbfrance.com/codes/COMPTER-MOTS-TEXTE_8471.aspx

Renfield
Admin CodeS-SourceS - MVP Visual Basic
0
Rejoignez-nous