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

Résolu
cobaltone Messages postés 116 Date d'inscription vendredi 27 février 2004 Statut Membre Dernière intervention 25 avril 2012 - 29 juil. 2005 à 23:25
mythic_kruger Messages postés 241 Date d'inscription jeudi 8 janvier 2004 Statut Membre Dernière intervention 10 novembre 2005 - 5 août 2005 à 03:32
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

cobaltone Messages postés 116 Date d'inscription vendredi 27 février 2004 Statut Membre Dernière intervention 25 avril 2012
4 août 2005 à 12:33
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
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
29 juil. 2005 à 23:40
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
0
mythic_kruger Messages postés 241 Date d'inscription jeudi 8 janvier 2004 Statut Membre Dernière intervention 10 novembre 2005
30 juil. 2005 à 03:07
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)
0
cobaltone Messages postés 116 Date d'inscription vendredi 27 février 2004 Statut Membre Dernière intervention 25 avril 2012
30 juil. 2005 à 09:29
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|||
0

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

Posez votre question
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
30 juil. 2005 à 09:41
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
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
4 août 2005 à 12:42
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
0
cobaltone Messages postés 116 Date d'inscription vendredi 27 février 2004 Statut Membre Dernière intervention 25 avril 2012
4 août 2005 à 19:43
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.

0
mythic_kruger Messages postés 241 Date d'inscription jeudi 8 janvier 2004 Statut Membre Dernière intervention 10 novembre 2005
5 août 2005 à 03:32
Ne t'inquiète pas cobaltone c'est très bien comme ça. Si tu as besoin d'aide n'hésites pas.
0
Rejoignez-nous