Déterminer le séparateur utilisé pour les fichiers csv

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 966 fois - Téléchargée 28 fois

Contenu du snippet

Selon les "regional settings" de votre PC, vos fichiers CSV seront écrits et lus avec un séparateur de colonnes différent. J'ai eu ce probléme au boulot.

Le code suivant vous permet de déterminer quel séparateur est utilisé par le système (en général , ou ;).

Débile? Pas forcément! Si on a une procédure qui écrit des CSV, on a meilleur temps de savoir comment les écrire.

Source / Exemple :


Option Explicit

Const LOCALE_USER_DEFAULT = &H400
Private Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String, ByVal cchData As Long) As Long

Function CSV_Delimiter()
    CSV_Delimiter = GetInfo(12)
End Function

Public Function GetInfo(ByVal lInfo As Long) As String
    Dim Buffer As String, Ret As String
    Buffer = String$(256, 0)
    Ret = GetLocaleInfo(LOCALE_USER_DEFAULT, lInfo, Buffer, Len(Buffer))
    If Ret > 0 Then
        GetInfo = Left$(Buffer, Ret - 1)
    Else
        GetInfo = ""
    End If
End Function

Conclusion :


La fonction GetInfo (donc tout!) vient de www.allapi.net.

A voir également

Ajouter un commentaire

Commentaires

philheiz
Messages postés
117
Date d'inscription
mercredi 3 décembre 2003
Statut
Membre
Dernière intervention
11 octobre 2007
1 -
L'info vient des 'regional settings' de ta machine (de la base de registre).

Essaie-ca avec la fonction GetInfo:

Sub MapInfos()
Dim i As Long
For i = 1 To 100
Debug.Print i & ": " & GetInfo(i)
Next i
End Sub

Je te renvoie au site suivant pour plus d'info sur l'API:
http://www.mentalis.org/apilist/GetLocaleInfo.shtml
coquilledepapillon
Messages postés
3
Date d'inscription
mercredi 24 septembre 2003
Statut
Membre
Dernière intervention
18 février 2004
-
C'est très utile de savoir quel est le séparateur mais j'aimerai comprendre où tu vas chercher l'info.
Au boulot, je traite des fichiers CSV au format ; mais aussi des fichiers séparateur "|" et quand je regarde la macro, elle me trouve "|" ce qui correspond à la boîte de dialogue Convertir, séparateur coché par défaut.
Merci de nous faire des précisions.
chmerlier
Messages postés
4
Date d'inscription
jeudi 4 septembre 2003
Statut
Membre
Dernière intervention
24 octobre 2005
-
C'est bien mais ça ne garanti pas qu'un fichier CSV créé sur une autre machine soit de ce type !
Pour en être certain il faut analyser le fichier et sa structure (dixit importation sous excel)

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.