Import fichiers txt dans une table

Signaler
Messages postés
5
Date d'inscription
mardi 23 mars 2004
Statut
Membre
Dernière intervention
6 décembre 2011
-
Messages postés
5
Date d'inscription
mardi 23 mars 2004
Statut
Membre
Dernière intervention
6 décembre 2011
-
Bonjour,
j'ai besoin d'aide pour récuperer des données provenant de différents fichiers texte qui se présentent de la manière suivante :
$DF4.9945
10699.179792.6.0111.H23
10700.179791.7.0101.H22
$FF4.9945
$DF3.9945
10678.179766.8.0100.H21
10709.179786.8.0100.H13
10710.179777.4.0010.B12
10705.179778.1.0000.B17
10672.179772.3.0011.B3
10673.179771.2.0001.B2
10670.179782.8.0100.H5
10671.179773.4.0010.B4
$FF3.9945
si la ligne commance par $D
J'aimerais recupérer les deux informations délimités par le point dans deux variables a et b
et remplacer le contenu apres le point (delimiteur)de la ligne suivante.
si la ligne commance par $f vider le contenu des variables a et b

ex pour les 3 premières lignes
10699.DF4.9945
10700.DF4.9945

Merci de votre aide je cherche depuis une semaine sans grand résultats

5 réponses

Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
Bonsoir
un début
pour lire tout le fichier dans un tableau

dim tableau() as string
dim a as string
dim b as string
Try
    tableau = System.IO.File.ReadAllLines("c:\bbb.txt)
Catch ex As Exception
   MessageBox.Show(ex.Message)           
End Try
après travaille avec tableau 
For Each Str As String In tableau
  If Str.Substring(0, 2) = "$D" Then
   a = str.Substring("$D".Length, str.IndexOf(".") - "$D".Length)
    b = str.Substring(str.IndexOf(".") + 1)
  End If 
Next
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
encore quelques éclaircissements
avant
$DF4.9945
10699.179792.6.0111.H23
10700.179791.7.0101.H22

j'ai detecté $D
donc a = F4
b = 9945
et remplacer le contenu apres le point (delimiteur)de la ligne suivante.

par a et b
la ligne suivante est
10699.179792.6.0111.H23
donc je remplace 179792.6.0111.H23 par F4.9945
ce qui donne 10699.F4.9945
pourquoi tu remplaces aussi
10700.179791.7.0101.H22 ?
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
ah je pense avoir compris
avant
$DF4.9945
10699.179792.6.0111.H23
10700.179791.7.0101.H22
$FF4.9945
$DF3.9945
10678.179766.8.0100.H21
10709.179786.8.0100.H13
10710.179777.4.0010.B12
10705.179778.1.0000.B17
10672.179772.3.0011.B3
10673.179771.2.0001.B2
10670.179782.8.0100.H5
10671.179773.4.0010.B4
$FF3.9945

après
10699.DF4.9945
10700.DF4.9945
$FF4.9945
10678.F3.9945
10709.F3.9945
10710.F3.9945
10705.F3.9945
10672.F3.9945
10673.F3.9945
10670.F3.9945
10671.F3.9945
$FF3.9945

c'est bon ?
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
voila
    Dim tableau() As String
        Dim nouveautableau As New List(Of String)
        Dim a As String
        Dim b As String
        tableau = Nothing

        a = String.Empty
        b = String.Empty
        Try
            tableau = System.IO.File.ReadAllLines("e:\bbb.txt")
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
        'après travaille avec tableau 

        For Each Str As String In tableau
            If Str.Substring(0, 2) = "$F" Then
                a = String.Empty
                b = String.Empty
                nouveautableau.Add(Str)
            Else
                If Str.Substring(0, 2) = "$D" Then
                    a = Str.Substring("$D".Length, Str.IndexOf(".") - "$D".Length)
                    b = Str.Substring(Str.IndexOf(".") + 1)
                Else
                    nouveautableau.Add(Str.Replace(Str.Substring(Str.IndexOf(".") + 1), a & "." & b))
                End If
            End If
        Next
    End Sub


nouveautableau contient les données
veux tu les copier dans un fichier ?
Messages postés
5
Date d'inscription
mardi 23 mars 2004
Statut
Membre
Dernière intervention
6 décembre 2011

oui merci