Recup de données dans des fichiers txt

fdh83400 Messages postés 3 Date d'inscription samedi 24 novembre 2007 Statut Membre Dernière intervention 14 avril 2013 - 14 avril 2013 à 20:59
 Utilisateur anonyme - 15 avril 2013 à 12:57
Bonjours a tous.
Je cherche a faire une recup de données sur des fichiers textes qui sont tous construits de la même façon, avec a chaque ligne un code suivit de "=" puis une donnée et ensuite integrer le tout dans une base de données.
Je sais lire les fichiers lignes par lignes ou dans leur intégralité mais ne parviens pas a faire un tri autre que par des if successifs pour reconnaitre quel est le code en début de ligne et cela prends pas mal de temps.
N existe t il pas une methode dans VB qui permette de definir chaque code et d automatiser la reconnaissance de ceux ci ?

Voici un exemple de fichiers que je veux traiter.
J attends vos réponses avec impatience.
Merci d avance.


50=12145.130219.JM
51=2013-02-19
52=05:14:27
23=4111
0=Instrument
5=SA.44
4=111
37=5000.000
38=1000.000
39=100.000
56=30.0
74=1019.00
30=8
58=6372000.000
59=0.142
2=SA.44
4=111
3=1.522
62=SA.45
21=100.00000
33=0.000
5=SA.45
4=111,2
6=1.500
7=100.00000
8=98.24201
9=103.793
0=Instrument
0=Dernière installation station utilisée
33=0.000
5=363
4=114210
6=1.500
7=97.67380
8=98.03102
9=19.072
5=364
4=114220
6=1.500
7=104.13677
8=98.85860
9=18.260
5=365
4=114212
6=1.500
7=287.57385
8=103.60392
9=47.696
5=366
4=114222
6=1.500
7=285.58882
8=103.87699
9=47.984

Fred de Hyeres

3 réponses

Utilisateur anonyme
14 avril 2013 à 21:14
Bonjour,

Puisque que tu as des données en String, tu fais un Split() avec le signe = comme caratère de séparation.
0
fdh83400 Messages postés 3 Date d'inscription samedi 24 novembre 2007 Statut Membre Dernière intervention 14 avril 2013
14 avril 2013 à 21:51
plus tôt qu un split, je passe par :
Using MyReader As New Microsoft.VisualBasic.FileIO.TextFieldParser(NomFich)


MyReader.TextFieldType = FileIO.FieldType.Delimited
MyReader.SetDelimiters("=")

Mais mon envie serait de supprimer cette étape et de faire reconnaitre directement chaque code pour assigner la valeur de la donnée dans un tableau ou une grid.
Le tout en séparant et regroupant certaines données

voici la liste de mes codes certains induisent de nouvelles lignes et d autres des colonnes sur la même ligne .
0 = type d instrument
2 = Nom Station
3 = HA
4 = code
5 = Nom Point
6 = HP
7 = AH
8 = AV
9 = DI
21 = Gisement Référence
30 = inutile
33 = inutile
37 = X point
38 = Y point
39 = Z point
50 = nom de l étude
51 = Date de l étude
52 = Heure de création du fichier
56 = Température
58 = 6372000.000
59 = ppm
62 = Référence
74 = Pression atmosphérique

Construction des lignes après récup:
Comentaires :
pour chacun une ligne
0
30
33
50
51
52
56
58
59
62
74


ligne Points :
Nom point,X,Y,Z,AH,AV,DI,HP,Code
5,37,38,39,7,8,9,6,4
ou X,Y,Z ne sont pas forcément renseigner

Ligne Stations :
Nom Station,X,Y,Z,HA,Gisement de Référence
2,37,38,39,3,21
ou X,Y,Z ne sont pas forcément renseigner
Fred de Hyeres
0
Utilisateur anonyme
15 avril 2013 à 12:57
Bonjour,

Je n'ai pas bien compris mais je suis d'accord avec cmarcotte, pourquoi se compliquer la vie?

        Dim Str As String "0 type d instrument"
        Dim Tabl() As String Split(Str, " ")
        MsgBox("Le Tabl(0) contient: " & Tabl(0) & " et Tabl(1) contient : " & Tabl(1))



Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
Rejoignez-nous