begin process at 2008 08 30 18:19:34
1 234 151 membres
184 nouveaux aujourd'hui
14 294 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : lecture de fichier et conversion en tableau [ Divers / Débutants ] (yabiyou)

lecture de fichier et conversion en tableau le 20/07/2007 11:52:15

yabiyou
Bonjour,


Je suis en train de faire un programme qui doit lire dans un fichier texte composé à partir d'une certaine ligne de données sous la forme:
B=1.556 A=3.222 P=2.333
B=2.333 A=2.333 P=2.333
etc

J'arrive à récupérer les lignes de mon fichier. Ensuite j'arrive pour une ligne myLines(i) à la découper en plusieurs parties avec Split( ) et à récupérer les valeurs numériques des string obtenus  avec Val( ).
Par contre je ne comprend pas trop comment faire le faire plusieurs fois et ainsi créer 3 tableau de double B, A et P...

Si vous avez des idées, merci.

Re : lecture de fichier et conversion en tableau le 20/07/2007 11:59:38

jrivet
Membre Club
Réponse acceptée !
Salut,
Regarde ce que fait ceci pour te donner l'idee.
J'ai pas fait de fonction ou de boucle mais l'idée est la
Option Explicit

Private Type Donnees
   A As Single
   B As Single
   P As Single
End Type

Dim TabDonnees() As Donnees

Private Sub Form_Load()
Dim ligne As String
Dim tmpType As Donnees
ligne = "B=1.556 A=3.222 P=2.333"
ReDim TabDonnees(0)
With tmpType
   .B = Split(Split(ligne, " ")(0), "=")(1)
   .A = Split(Split(ligne, " ")(1), "=")(1)
   .P = Split(Split(ligne, " ")(2), "=")(1)
End With

TabDonnees(UBound(TabDonnees)) = tmpType
ReDim Preserve TabDonnees(UBound(TabDonnees) + 1)

ligne = "B=2.333 A=2.333 P=2.333"
With tmpType
   .B = Split(Split(ligne, " ")(0), "=")(1)
   .A = Split(Split(ligne, " ")(1), "=")(1)
   .P = Split(Split(ligne, " ")(2), "=")(1)
End With

TabDonnees(UBound(TabDonnees)) = tmpType
ReDim Preserve TabDonnees(UBound(TabDonnees) + 1)

Stop

End Sub
By Renfield


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

Re : lecture de fichier et conversion en tableau le 20/07/2007 12:46:25

mortalino
Membre Club


salut,

autre possibilité avec le snippet de pcpt :


Option Explicit


' Snippet de PCPT
' http://www.codyx.org/snippet_split-sur-plusieurs-criteres_233.aspx


Function MultiSplit(ByVal sStr As String, bKeepSepar As Boolean, ParamArray aArray()) As String()
'    sStr        -> chaîne à  parser
'    bKeepSepar  -> garder ou non les  caractères de référence
'    aArray      ->  tableau des références de taille variables
    Dim sCol As New Collection
    Dim sChar          As String, sLeft As String
    Dim bFound         As Boolean
    Dim aRes()         As String
    Dim i              As Integer, j As Integer, NbCarac As Integer
    i = 0
    
    While LenB(sStr) > 0
        i = i + 1
        bFound = False
        For j = LBound(aArray) To UBound(aArray)
            NbCarac = Len(aArray(j))
            sChar = Mid$(sStr, i, NbCarac)
            If sChar = CStr(aArray(j)) Then bFound = True: Exit For
        Next j
        If bFound Then
            sLeft = Left$(sStr, i - 1)
            If LenB(sLeft) > Then sCol.Add sLeft
            If bKeepSepar Then sCol.Add sChar
            sStr = Right$(sStr, Len(sStr) - (NbCarac + (i - 1)))
            i = 0
        ElseIf sChar = vbNullString Then
            sCol.Add sStr
            sStr = vbNullString
        End If
    Wend
    ReDim aRes(sCol.Count - 1)
    For i = To sCol.Count
        aRes(i - 1) = sCol.Item(i)
    Next i
    MultiSplit = aRes
    
    Set sCol = Nothing
    Erase aRes
End Function

'  EXEMPLE  D'UTILISATION
Private Sub Form_Load()
    Dim a$(), i%
    a = MultiSplit("B=1.556 A=3.222 P=2.333"False"B="" A="" P=")
    For i = To UBound(a)
        Debug.Print "_" & a(i) & "_"
    Next i
    Unload Me
End Sub

~ Mortalino ~ Colorisation automatique

@++


( Nouveau forum : Exclusivement Office & VBA

Re : lecture de fichier et conversion en tableau le 20/07/2007 14:48:41

yabiyou

Merci pour les réponses. J'ai essayé la première méthode seulement en l'adaptant et ça marche très bien


Re : lecture de fichier et conversion en tableau le 17/08/2007 08:58:43

omarjock
c'est bien ton code mortalino,
je fais la meme chose mais si dans le cas ou le fichier etait structuré en ligne comment ignorer le caractere de saut de ligne
merci 

Re : lecture de fichier et conversion en tableau le 17/08/2007 17:53:06

mortalino
Membre Club

salut,

avec comme valeur vbCrLf ou vbNewLine.

@++


( Nouveau forum : Exclusivement Office & VBA


Classé sous : fichier, lecture, ligne, tableau, conversion

Participer à cet échange

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS