Modifier les entête d'un fichier texte [Résolu]

Signaler
Messages postés
119
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
10 janvier 2014
-
Messages postés
119
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
10 janvier 2014
-
Bonjour,

Comment lire est modifier les entêtes d'un fichier texte
par vba access.

Merci de votre aide.

Salutations.

PS.Toutes mes excuses si je ne suis pas dans le bon forum.

7 réponses

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
35
salut,

... mouai allez c'est dimanche


Sub ReDoCSV(ByVal sPath As String)
'   le fichier doit exister et contenir au moins ce fameux header !!
    Dim FF         As Integer
    Dim sLine      As String
    Dim sLines     As String
    Dim saHeader() As String
    Dim i          As Integer
    Dim j          As Integer

    sLines = vbNullString
    i = 0
    FF = FreeFile
    
    Open sPath For Input As #FF
        Do While Not EOF(FF)
            i = i + 1
            Line Input #FF, sLine
            
            If i = 1 Then
'               première ligne, on garde de côté en tableau
                saHeader = Split(sLine, " ; ")
            Else
'               les autre ligne, on se compose notre buffer
                sLines = sLines & vbCrLf & sLine
            End If
        Loop
    Close #FF
    
'   on travaille sur le tableau, le but étant de numéroter tous les NOM trouvés
    j = 0
    For i = 0 To UBound(saHeader) - 1
        If saHeader(i) = "NOM" Then
            j = j + 1
            saHeader(i) = "NOM" & CStr(j)
        End If
    Next i
    
'   on a maintenant "DATE ; HEURE ; NOM1 ; COURT ; NATURE"
'   oubien          "DATE ; HEURE ; NOM1 ; NOM2 ; NOM3 ; NOM4 ; COURT ; NATURE"

'   ré-écriture
    FF = FreeFile
    Open sPath For Output As #FF
        Print #FF, Join(saHeader, " ; ") & sLines;
    Close #FF
End Sub


++
[hr]
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
35
ah j'ai mis des chiffres au lieu de lettres....

si c'est grave :
saHeader(i) = "NOM" & CStr(chr$(j+64))
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
70
Salut

Un fichier texte n'a pas d'entête.
Précise ta demande.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
119
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
10 janvier 2014

Bonjour Jack et bonne année,

En lisant le fichier avec WordPad il se présente de cette façon:

DATE ; HEURE ; NOM ; NOM ; COURT ; NATURE
Lundi 28 Décembre 2009;09h 00;XXXXXX;;N°7;club
Lundi 28 Décembre 2009;18h 00;WWWWWW;ZZZZZZ;N°8;adherent
Lundi 28 Décembre 2009;20h 00;KKKKKK;MMMMMMM;N°8;adherent

Je voudrais changer les noms de la première ligne ( par exemple le premier NOM PAR NOMA et le deuxième par NOMB)
avant de les importer dans ma table.

Salutations.
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
36
Je soupçonne un fichier généré par une fonction extraction de données dans Access. Dans ce cas là, la première ligne correspond à coup sûr aux nom des colonnes de la table. Il faudrait (si cela est possible) alors modifier les nom de colonne de la table Access

[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
Messages postés
119
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
10 janvier 2014

Bonsoir Casy,

Non le fichier n'est pas généré par une fonction d'extraction d'Access, il s'agit tout simplement d'un fichier d'Excel en csv dont les deux "NOM" me gène et qu'il me faut modifier automatiquement.

Malgré mes recherches je n'ai rien trouvé pour m?expliquer comment l'on peut lire la première ligne, et la modifier.

Salutations
Messages postés
119
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
10 janvier 2014

Bonjour PCPT,

Merci pour ton aide, le code fonctionne super bien.

Salutations