Récupérer le contenu d'un fichier sous forme d'un tableau multidimensionnel d'après des colonnes structurées

Contenu du snippet

Function GetColumnsFromFile(sPath As String, Optional sSepar As String = ";") As String()
    Dim FF As Integer, sBuffer As String, aLines() As String, aCols() As String, i As Long, j As Long, aRes() As String
    FF = FreeFile: i = 0: j = 0
    
    On Error Resume Next
    Open sPath For Input As #FF
        sBuffer = Input(LOF(FF), #FF)
    Close #FF
    If Not (Err.Number = 0) Then Exit Function
    
    aLines = Split(sBuffer, vbNewLine)
    For i = 0 To UBound(aLines)
        aCols = Split(aLines(i), sSepar)
        If i = 0 Then ReDim aRes(UBound(aLines), UBound(aCols))
        For j = 0 To UBound(aCols)
            aRes(i, j) = aCols(j)
        Next j
    Next i
    
    GetColumnsFromFile = aRes
    Erase aLines: Erase aCols: Erase aRes
End Function
'
'   EXEMPLE
Private Sub Form_Load()
    Dim aFile() As String
    Dim i%, j%
    aFile = GetColumnsFromFile("C:\aaa.txt", "[MYSEP]")
    For i = 0 To UBound(aFile)
        For j = 0 To UBound(aFile, 2)
            Debug.Print aFile(i, j)
        Next j
        Debug.Print "===================" & vbCrLf
    Next i
End Sub


Compatibilité : VB6, VBA

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.