modifier les données d'un fichier texte sans l'ouvrir avec VBA

WILFRIED

XLDnaute Impliqué
Bonjour a tous et toutes,

Je récupère des fichiers de mesures aux format txt. J'ai besoin d'effectuer des modifications sur ces données :

je sais lire les donnees d'un fichier texte sans l'ouvrir :

Code:
vr_Separateur = vbTab
    lng_NbLignes = 65536
    int_nb_col = 1
    Counter = 1
    int_nb_ligne = 0
    int_nb_col_mx = 0
    ReDim tab_import(1, 0)
    'Ouverture du fichier txt
    Open str_fichier For Input As #1
        Do While Not EOF(1)
            If int_nb_ligne > lng_NbLignes Then
                MsgBox "Caution stop transfer! The file to voluminous!!!"
                Exit Do
            End If
            Line Input #1, ContenuLigne
            int_pos_dep = 1
            int_nb_col = 1
            Do Until InStr(int_pos_dep, ContenuLigne, vr_Separateur, vbTextCompare) = 0
               int_pos_dep = InStr(int_pos_dep, ContenuLigne, vr_Separateur, vbTextCompare)
               If int_pos_dep <> 0 Then
                  int_pos_dep = int_pos_dep + 1
                  int_nb_col = int_nb_col + 1
                  int_nb_col_mx = int_nb_col
               End If
            Loop
            ReDim Preserve tab_import(1, int_nb_ligne)
            'découpe la chaine en fonction des espaces " "
            'le résultat de la fonction Split est stocké dans un tableau
            ReDim Preserve tableau(0)
            tableau(0) = Split(ContenuLigne, vr_Separateur, -1, vbTextCompare)
            For i = 0 To int_nb_col - 1
               tab_import(i, int_nb_ligne) = tableau(0)(i)
            Next i
            int_nb_ligne = int_nb_ligne + 1
        Loop
    Close #1

Je sais comment faire pour modifier les données.

Mon problemes est d'aller remplacer les données modifier.

En l'occurence elles vont toutes ce trouver dans la seconde colonnes de tab_import.

existe t il une fonction line output??

D'avance merci.

A+
 

tototiti2008

XLDnaute Barbatruc
Re : modifier les données d'un fichier texte sans l'ouvrir avec VBA

Bonjour Wilfried,

A ma connaissance, l'écriture dans un fichier texte étant séquentielle, tu ne peux pas modifier le texte à l'intérieur du fichier (mais si je me trompe je serais intéressé de savoir comment faire)
Donc, au fur et à mesure que tu lis le fichier original, il faut créer la copie modifiée dans un nouveau fichier, fermer l'original, le supprimer, renommer la copie comme l'original...

Edit :
sans l'ouvrir
Ce n'est pas parce que ce n'est pas visible à l'écran que le fichier n'est pas ouvert...
D'ailleurs, l'instruction Open ne s'appelle pas open pour rien ;)
 
Dernière édition:

WILFRIED

XLDnaute Impliqué
Re : modifier les données d'un fichier texte sans l'ouvrir avec VBA

Salut,

En recherchant les pages wiki de michel xld, j'ai trouver ce lien : https://www.excel-downloads.com/threads/acces-au-wiki-de-michel-xld.32935/ dans lequel on retrouve les pages, mais si je clique dessus, il me demande un mots de passe puis me dit :

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, webmaster@excel-downloads.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
Apache/2 Server at Excel Downloads Port 80

En tous cas merci...

A+
https://www.excel-downloads.com/threads/acces-au-wiki-de-michel-xld.32935/
 

Discussions similaires

Statistiques des forums

Discussions
311 733
Messages
2 082 019
Membres
101 872
dernier inscrit
Colin T