Lecture/écriture fichier txt en VBA Excel, via fonctions GET et PUT ?

Bonjour à tous,

J'essaye de lire le contenu d'un fichier txt, contenant sur chaque ligne un entier puis 3 nombres décimaux (séparés par des espaces).
Mon fichier étant volumineux, et devant effectuer cette opération de manière itérative sur un nombre important de fichiers, la lecture via un ''Line Input'' n'est pas satisfaisante car trop longue.
Il me semble que la fonction GET doit me permettre de gagner du temps, mais je ne m'en sors pas.

Exemple de contenu de mon fichier tx

34 40.59 73.761 2.459
2 8.152 62.882 96.928
80 68.23 41.556 50.657
12 38.757 67.338 59.588
44 65.372 96.198 84.0

Mon début de macro sur lequel je sèche :

Type Custo
    ID As Integer
    X_ As Double
    Y_ As Double
    Z_ As Double
End Type

Sub ExempleLectureFichierTexte()
    Dim ContenuFichier As Custo
    Dim MonFichier As String
    Dim IndexFichier As Integer

    MonFichier = "C:\DONNEES\temp\test.txt"
    IndexFichier = FreeFile()
    Open MonFichier For Random As #IndexFichier
    Get #IndexFichier, , ContenuFichier
    Close #IndexFichier
    MsgBox ContenuFichier.ID & " " & ContenuFichier.X_ & " " & ContenuFichier.Y_ & " " & ContenuFichier.Z_
End Sub

Mes interrogations :

  • Cette macro me renvoie une donnée farfelue, dont je ne trouve pas le lien avec le fichier txt de départ.
  • Je pense qu'avec ce que je réalise, je ne stocke pas les données dans ce qui ressemble à un tableau dont le nombre de ligne est égale au nombre de ligne du fichier txt.

Une fois que j'aurai franchi cette étape, j'aurai besoin de traiter et compléter ces données , puis de le renvoyer dans le fichier de départ, mais chaque chose en son temps.

Merci d'avance pour vos retours.

Bonjour

Peux-tu compléter ton profil en indiquant ta version Excel et joindre un exemple

Bonjour à tous,

Il me semble que la fonction GET doit me permettre de gagner du temps, mais je ne m'en sors pas.

c'est le cas si tu dois charger qq enregistrements précis dont tu connais la position.
Pas de gain en vue si tu dois tout lire.
De toute façon, pour utiliser un accès aléatoire les champs doivent avoir une longueur constante sur tous les enregistrements. Ce qui ne semble pas être le cas.
Et les déclarer dans le Type, aucune notion de longueur dans ta déclaration.
eric

Rechercher des sujets similaires à "lecture ecriture fichier txt vba via fonctions get put"