Recherche caracter séparé par vigule dans un fichier texte

Résolu
Signaler
Messages postés
116
Date d'inscription
vendredi 27 février 2004
Statut
Membre
Dernière intervention
25 avril 2012
-
Messages postés
241
Date d'inscription
jeudi 8 janvier 2004
Statut
Membre
Dernière intervention
10 novembre 2005
-
Bonsoir a tous,

je cherche a lire une chaine de caractere dans un fichier texte qui ressemble a cela:

105100;0


106100;0


107100;160


108100;20

le but etant de trouver le chiffre derriere un code par exemple trouver 160 derriere le code 107100 or je n'arrive pas a séparer tout ça!
merci d'avance pour toute aide sur ce probleme!

|||CoBaLtOnE|||

8 réponses

Messages postés
116
Date d'inscription
vendredi 27 février 2004
Statut
Membre
Dernière intervention
25 avril 2012

Bon tout d'abord merci a tous, je difuse la source complete modifié ici


dans un module :

Public Sub SearchF()
'un menu déroulant pour changer le type de code
If Form1.Combo1.Text = "cliquez ici" Then MsgBox "Le Type de Recherche doit etre défini"



FF = FreeFile
code = Form1.Text1.Text 'le code a rechercher
Dim pos As Integer
Dim Mafin As String
file = "" & Form1.Label15.Caption

Open App.Path & "" & "stat" & file For Input As #FF
Do While Not EOF(FF)
Line Input #FF, ligne

If find = 1 Then GoTo stopsearch ' sortie de la boucle dès que le code est trouvé
If Left(ligne, 6) code Then pos InStr(ligne, ";")
If pos <> 0 Then 'pos = 7 dans cet exemple
Mafin = Right(ligne, Len(ligne) - pos)
find = 1 'pour sortir de la boucle
Mafin = "Le résultat pour la recherche sur " & Form1.Combo1.Text & " est : " & Mafin
Form1.console.Text = Mafin ' affichage du resultat dans un champs


End If

stopsearch:
Loop



Close #FF


End Sub



|||CoBaLtOnE|||
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
on suppose Ligne as string = "107100;160"

dim pos as integer
dim MaFin as string
pos = Instr(Ligne, ";")
if pos<>0 then 'pos = 7 dans cet exemple
MaFin=Right(Ligne, len(ligne)-pos)
endif

PCPT
Messages postés
241
Date d'inscription
jeudi 8 janvier 2004
Statut
Membre
Dernière intervention
10 novembre 2005

autre fonction similaire à la place de Right():

MaFin = Mid(ligne, pos + 1, Len(ligne) - pos)



encore une autre méthode:

Dim T() As String: T = Split(ligne, ";")

MsgBox T(1)
Messages postés
116
Date d'inscription
vendredi 27 février 2004
Statut
Membre
Dernière intervention
25 avril 2012

merci pour ces réponsse, mais comme dans dis dans le message d'origine je n'ai pas la ligne "107100" j'ai des fichiers qui font pres de 40 lignes avec des codes différents tant que je n'arrive pas a isoler cette ligne savoir ce qu'il y ' a derriere le code 107100 est une partie de la solution;
Si quelq' un sait comment s'arreter a la ligne en question puis l'isoler c 'est la qu'est mon vrai soucis !


merci d'avance!

|||CoBaLtOnE|||
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
il y a bcp de sources ici.
dès le départ, dis nous que tu n'arrives pas à "lire" un fichier texte, et non pas laisser croire que tu y arrives mais es bloqué à la séparation d'une ligne // caractère.

FF = FreeFile

Open App.Path & "\MonTxt.txt" For Input As #FF
Do While Not EOF(FF)


Line Input #FF, Ligne
'et ici tu traites Ligne selon les posts ci-dessus...
Loop
Close #FF

PCPT
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
If Form1.Combo1.Text = ...
si tu ne fais pas d'Exit Sub, ton MsgBox ne sert à rien!

tu déclares "Pos", "Mafin", etc.. et "FF", nan?!! (et d'autres)

file = "\stat" & Form1.Label.... çà n'irait pas plus vite?!!

find=1 mal placé

etc....
PCPT
Messages postés
116
Date d'inscription
vendredi 27 février 2004
Statut
Membre
Dernière intervention
25 avril 2012

mon msgbox sert a avertir que la combobox n'as pas été modifiée
pour les déclaration je ne les fait pas toujours; tu doit etre puriste, et je respecte cela, néamoins le code est fonctionel, vb s'occupe lui meme en compilant de déduire les déclaration manquantes quand il le peut

oui pour file=....
ça irait surement plus vite, mais de combien de millisecondes?
je m'en occuperait des que tout mon prog sera fonctionel

euh pour le placement de la variable find en quoi est elle mal placé ça fonctionne chez moi !

y' a tant d' erreur que cela ?
si tu veut corriger j'accepterai ta réponsse et enleverai l' autre.

merci bcp

cob.

Messages postés
241
Date d'inscription
jeudi 8 janvier 2004
Statut
Membre
Dernière intervention
10 novembre 2005

Ne t'inquiète pas cobaltone c'est très bien comme ça. Si tu as besoin d'aide n'hésites pas.