Utilisation de StreamReader(décomposer une ligne)

Signaler
Messages postés
968
Date d'inscription
jeudi 20 mai 2004
Statut
Membre
Dernière intervention
26 avril 2013
-
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
-
Bonjour et bonne année,

Voila j'utilise VB depuis peu et j'ai un probleme : je dois lire un fichier qui est défini ainsi:
NB_DDR 0
NB_LOL 7
Tab_FIZ 0 5 4 11 10 17 16
DIA 0,765

un mot clé et un chiffre en face voir un série de chiffre...
(ce fichier a un format que je ne peux changer il est imposé car lu de cette maniére a partir d'un prog C++)

donc en VB je sais qu'on peut lire une ligne avec
 Using sr As StreamReader = New StreamReader
mais moi je voudrais pouvoir reconnaitre les mots clés et ensuite récupérer les valeurs en face, indépendamment
de l'ordre dont sont écrit les mots clés.
je ne sais pas trop comment faire en VB.

 

4 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,
Je ne sais pas si cela peut t'aider, mais essaie en détectant le premier espace dans la ligne.

Ce qui est à gauche de l'espace c'est le mot clé et à droite de l'espace c'est le numero

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
968
Date d'inscription
jeudi 20 mai 2004
Statut
Membre
Dernière intervention
26 avril 2013
1
Oui j'ai penser a ca mais c'est pas TOP...
et quelles sont les fonctions pour : savoir le mot a droite celui a gauche? repérer l'espace? et comparer les chaines de caracteres en VB?

 
Messages postés
968
Date d'inscription
jeudi 20 mai 2004
Statut
Membre
Dernière intervention
26 avril 2013
1
oki j'ai trouver ca...

 Dim keyword, line, tabline() As String

            line = sr.ReadLine
            tabline = Split(line, " ")
            SAI.NUM_ELT = Val(tabline(1))

il manque plus qu'a comparer tabline(0) avec mes mots clé et c'est good !!!!

 
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Re,
Si tu es bien Vb .NET tu peux tester ceci.
Ce n'est certainement la meilleure facon de faire mais au moins c'est une idee

Dim Test As String = "Tab_FIZ 0 5 4 11 10 17 16 "
Dim EspIdx As Integer = Test.IndexOf(" ")
Dim Code As String = Test.Substring(0, EspIdx)
Dim Num As String = Test.Substring(EspIdx + 1)

MessageBox.Show ("+" & Code & "+" & Num & "+")
, ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée