1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| Option Explicit
Dim TblLgns, Tbl2d(), RetourStatut
Sub ConstruitTableau2D(ChemNomFichier,SepLgn,SepCol,Statut)
Dim fso, fichier, T, U, D2max
Dim ContenuFichier, TblCol
Set fso = CreateObject("Scripting.FileSystemObject")
Statut = fso.FileExists(ChemNomFichier)
If Statut = False Then Set fso = Nothing: Exit Sub
Set fichier = fso.opentextfile(ChemNomFichier, 1)
ContenuFichier = fichier.ReadAll
fichier.Close
Set fichier = Nothing
Set fso = Nothing
D2max = 1 'pour trouver la ligne d'enregistrement qui a le plus de mots (colonnes)
TblLgns = Split(ContenuFichier,SepLgn) 'on récupère le tableau de lignes
For T = 0 To UBound(TblLgns)
TblCol = Split(TblLgns(T), SepCol, -1, 1)
If D2max < UBound(TblCol) Then D2max = UBound(TblCol)
Next
'maintenant que l'on a les 2 dimensions du tableau ...
Redim Tbl2d(UBound(TblLgns), D2max)' on le dimensionne
For T = 0 To UBound(TblLgns)
TblCol = Split(TblLgns(T), SepCol, -1, vbTextCompare)' on optient chaque mots de la ligne
For U = 0 To UBound(TblCol)' on boucle pour ....
Tbl2d(T,U)= TblCol(U) 'remplissage du tableau 2D
Next
Next
End Sub
'-------------------------------------------
ConstruitTableau2D "C:\MesProgs\En VBScript et HTA\Lire fichier sortie Tableau2D\FichierDemo.txt",vbNewline, " ", RetourStatut
If RetourStatut Then
Msgbox "1er ligne:" & vbNewline & TblLgns(0) & vbNewline & vbNewline & "dernière ligne:" & vbNewline & TblLgns(UBound(TblLgns))
Msgbox "Affichage du quatrième mot de la troisième ligne: " & vbNewline & Tbl2d(2,3)
Else
Msgbox "Fichier non trouvé"
End If
ConstruitTableau2D "C:\MesProgs\En VBScript et HTA\Lire fichier sortie Tableau2D\FichierDemo2.txt","|", "~", RetourStatut
If RetourStatut Then
Msgbox "Affichage du cinquième paramètre du deuxième champ d'enregistrement: " & vbNewline & Tbl2d(1,4),,"Fichier Demo2.txt"
Else
Msgbox "Fichier non trouvé"
End If |
Partager