begin process at 2012 02 16 16:38:14
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Fichier / Disque

 > VÉRIFIER LA CONFORMITÉ DU NOM D'UN FICHIER

VÉRIFIER LA CONFORMITÉ DU NOM D'UN FICHIER


 Information sur la source

Note :
9 / 10 - par 3 personnes
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Fichier / Disque Classé sous :nom, fichier, conformité, caractère, interdit Niveau :Débutant Date de création :05/10/2003 Date de mise à jour :05/10/2003 02:40:05 Vu / téléchargé :8 728 / 171

Auteur : jack

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note


 Description

Lorsque vous voulez enregistrer un fichier et que le nom est issu d'une variable, par exemple comportant le nom d'une machine, il parait utile de vérifier que tous les caractères qui compose le nom soient autorisés par Windows, sinon, vous risquez d'avoir une erreur que peut-être vous n'avez pas géré.

Pour vérifie le nom d'un fichier, simplement :
Nom = ValideNomFichier(Nom)

Les caractères non autorisés seront remplacés par des traits d'union (par défaut) ou par tout autre caractère si vous utilisez la syntaxe :
Nom = ValideNomFichier(Nom, "@")

Pour l'utiliser, collez ce code dans un module, ou récupérez le module dans le Zip.
C'est tout

Source

  • Public Function ValideNomFichier(ByVal sNomFichier As String, _
  • Optional sRemplaceCaractèrePar As String = "-") As String
  • ' Cette fonction renvoie un nom de fichier autorisé
  • ' On remplace les mauvais caractères par sRemplaceCaractèrePar
  • ' (valeur par défaut = signe moins '-')
  • ' Les caractères autorisés sont :
  • ' A-Z Lettre + Signe plus
  • ' 0-9 Nombre , Virgule
  • ' space Espace ; Point-virgule
  • ' ' Apostrophe = Signe égal
  • ' - Tiret @ Arobase
  • ' ! Point d'exclamation [ ] Crochets
  • ' # Dièse _ Tiret de soulignement
  • ' $ Dollar { } Accolades
  • ' % Pour cent ~ Tilde
  • ' & Et commercial ` Accent
  • ' ( ) Parenthèses . Point
  • ' plus toutes les combinaisons valables des lettres avec accents
  • ' !! Cette fonction ne fonctionne pas avec des chemins complets
  • ' puisque le caractère back-slash '\' n'est pas autorisé
  • Dim Temp As String, Car As String, r As Long
  • ' Avant de commencer, on va vérifier que le caractère de remplacement est
  • ' lui-même autorisé (ce serait trop bête)
  • sRemplaceCaractèrePar = Left(sRemplaceCaractèrePar, 1) ' un seul caractère
  • If Not (sRemplaceCaractèrePar Like "[A-Z]" Or _
  • sRemplaceCaractèrePar Like "[a-z]" Or _
  • sRemplaceCaractèrePar Like "[0-9]" Or _
  • sRemplaceCaractèrePar Like "[ '!#$%&()+,;=@{}~`.]" Or _
  • sRemplaceCaractèrePar Like "[-]" Or _
  • sRemplaceCaractèrePar Like "[[]" Or _
  • sRemplaceCaractèrePar Like "[]]" Or _
  • sRemplaceCaractèrePar Like "[_]" Or _
  • sRemplaceCaractèrePar Like "[àéèêïîôùû]") Then _
  • sRemplaceCaractèrePar = "-" ' Si non autorisé, impose trait d'union
  • Temp = sNomFichier
  • ' Vérifie que chaque caractère est autorisé
  • For r = 1 To Len(Temp)
  • Car = Mid(Temp, r, 1)
  • If Not (Car Like "[A-Z]" Or _
  • Car Like "[a-z]" Or _
  • Car Like "[0-9]" Or _
  • Car Like "[ '!#$%&()+,;=@{}~`.]" Or _
  • Car Like "[-]" Or _
  • Car Like "[[]" Or _
  • Car Like "[]]" Or _
  • Car Like "[_]" Or _
  • Car Like "[àéèêïîôùû]") Then _
  • Mid(Temp, r, 1) = sRemplaceCaractèrePar
  • Next r
  • ' S'il y a eu plusieurs remplacements à la suite, on va se retrouver avec
  • ' plusieurs signes '-' à la queue leuleu : pas joli : On n'en laisse qu'un.
  • Do While InStr(1, Temp, sRemplaceCaractèrePar & sRemplaceCaractèrePar) <> 0
  • Temp = Replace(Temp, sRemplaceCaractèrePar & sRemplaceCaractèrePar, sRemplaceCaractèrePar)
  • DoEvents
  • Loop
  • ' Renvoie le nom modifié
  • ValideNomFichier = Temp
  • End Function
Public Function ValideNomFichier(ByVal sNomFichier As String, _
                                 Optional sRemplaceCaractèrePar As String = "-") As String

    ' Cette fonction renvoie un nom de fichier autorisé
    ' On remplace les mauvais caractères par sRemplaceCaractèrePar
    '   (valeur par défaut = signe moins '-')
    ' Les caractères autorisés sont :
    '   A-Z   Lettre               +   Signe plus
    '   0-9   Nombre               ,   Virgule
    '   space   Espace             ;   Point-virgule
    '   '   Apostrophe             =   Signe égal
    '   -   Tiret                  @   Arobase
    '   !   Point d'exclamation   [ ]  Crochets
    '   #   Dièse                  _   Tiret de soulignement
    '   $   Dollar                { }  Accolades
    '   %   Pour cent              ~   Tilde
    '   &   Et commercial          `   Accent
    '  ( )  Parenthèses            .   Point
    ' plus toutes les combinaisons valables des lettres avec accents
    
    ' !! Cette fonction ne fonctionne pas avec des chemins complets
    '    puisque le caractère back-slash '\' n'est pas autorisé
    
    Dim Temp As String, Car As String, r As Long
    
    ' Avant de commencer, on va vérifier que le caractère de remplacement est
    ' lui-même autorisé (ce serait trop bête)
    sRemplaceCaractèrePar = Left(sRemplaceCaractèrePar, 1) ' un seul caractère
    If Not (sRemplaceCaractèrePar Like "[A-Z]" Or _
            sRemplaceCaractèrePar Like "[a-z]" Or _
            sRemplaceCaractèrePar Like "[0-9]" Or _
            sRemplaceCaractèrePar Like "[ '!#$%&()+,;=@{}~`.]" Or _
            sRemplaceCaractèrePar Like "[-]" Or _
            sRemplaceCaractèrePar Like "[[]" Or _
            sRemplaceCaractèrePar Like "[]]" Or _
            sRemplaceCaractèrePar Like "[_]" Or _
            sRemplaceCaractèrePar Like "[àéèêïîôùû]") Then _
                sRemplaceCaractèrePar = "-"  ' Si non autorisé, impose trait d'union
    
    Temp = sNomFichier
    ' Vérifie que chaque caractère est autorisé
    For r = 1 To Len(Temp)
        Car = Mid(Temp, r, 1)
        If Not (Car Like "[A-Z]" Or _
                Car Like "[a-z]" Or _
                Car Like "[0-9]" Or _
                Car Like "[ '!#$%&()+,;=@{}~`.]" Or _
                Car Like "[-]" Or _
                Car Like "[[]" Or _
                Car Like "[]]" Or _
                Car Like "[_]" Or _
                Car Like "[àéèêïîôùû]") Then _
                    Mid(Temp, r, 1) = sRemplaceCaractèrePar
    Next r
    
    ' S'il y a eu plusieurs remplacements à la suite, on va se retrouver avec
    ' plusieurs signes '-' à la queue leuleu : pas joli : On n'en laisse qu'un.
    Do While InStr(1, Temp, sRemplaceCaractèrePar & sRemplaceCaractèrePar) <> 0
        Temp = Replace(Temp, sRemplaceCaractèrePar & sRemplaceCaractèrePar, sRemplaceCaractèrePar)
        DoEvents
    Loop
    
    ' Renvoie le nom modifié
    ValideNomFichier = Temp

End Function


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture LECTURE DES INFORMATIONS DES DISQUES COMPOSANT UN ENSEMBLE R...
Source avec Zip Source avec une capture [VBA EXCEL] CALCULER LA DISTANCE ENTRE DEUX COORDONNÉES GÉOG...
Source avec Zip Source avec une capture Source .NET (Dotnet) JPG + ZIP = JPG ET ZIP
Source avec Zip Source avec une capture SYSTRAY + BALLOON - VARIANTE AVEC TEXTE DANS L'ICÔNE
Source avec Zip Source avec une capture DATE-HEURE DE LANCEMENT D'UN PROGRAMME

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) MODIFIER LES EXTENSION DES FICHIERS par okosa
ROUTINE DIR RÉCURSIVE POUR OBTENIR LA LISTE DE TOUS LES FICH... par kerisolde
Source avec Zip Source avec une capture FILE,SECURITY,FICHIER par okosa
Source avec Zip Source avec une capture Source .NET (Dotnet) PATCHEUR DE FICHIER par tototh
Source avec Zip Source avec une capture LECTURE DES INFORMATIONS DES DISQUES COMPOSANT UN ENSEMBLE R... par jack

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) RENOMMER FICHIERS MASSIVEMENT par aus3004
Source avec Zip Source avec une capture MANIPULATION DE FICHIER TEXTES À "DEUX COLONNES" par MALIKcpp
Source avec Zip Source avec une capture Source .NET (Dotnet) RECHERCHE DE CHAÎNES DANS UN FICHIER TEXTE par chewbaka62
EXTRAIRE LE RÉPERTOIRE D'UN FICHIER, SON EXTENSION, SON NOM,... par azerty25
PERMET D'ISOLER LE NOM D'UN FICHIER À PARTIR D'UN CHEMIN par jujuwiwi

Commentaires et avis

Commentaire de yan35 le 23/12/2006 12:45:42

Eh Oui, pratique !
Merci de l'avoir écrite cette fonction.
10/10

Commentaire de yan35 le 23/12/2006 15:27:07

Je viens de servir de ta fonction et je la complète avec des caractères autorisés complémentaires, comme suit :
>> sRemplaceCaractèrePar Like "[ '!#$%&()+,;=@{}~`.°]" Or _  ' ajout du °
>> sRemplaceCaractèrePar Like "[àéèêïîôùû]" Or _
   sRemplaceCaractèrePar Like UCase("[àéèêïîôùû]")) Then _   ' ajout de ces caractères en majuscules

>> Car Like "[ '!#$%&()+,;=@{}~`.°]" Or _
>> Car Like "[àéèêïîôùû]" Or _
   Car Like UCase("[àéèêïîôùû]")) Then _

Cordialement.

Commentaire de jack le 23/12/2006 15:41:04 administrateur CS

Merci Yan pour cette amélioration.
Je mettrais à jou après les fêtes.

Commentaire de jack le 21/07/2007 18:54:25 administrateur CS

Dans la même série : http://www.vbfrance.com/codes/VERIFIER-CONFORMITE-ADRESSE-EMAIL_43534.aspx

Commentaire de JonasVB le 13/12/2008 11:24:38

pourquoi ne pas se contenter de tester les caractères interdits ?

\ / : * ? " < > |

d'autant que (même si avant dotNet, VB ne les gérait pas) Windows autorise aussi les caractères unicode (japonais et autres...)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Questions sur les types record lecture fichier textes [ par aforpien ] Bonjour à tous,J'utilise l'utilitaire WMIC afin de récupérer un fichier texte rempli de différentes informations sur les lecteurs DAT (de bandes) des chaine de caractère [ par fabrice2205 ] Bonsoir,Dans un programme en vba j'ouvre un fichier excel choisie par l'utilisateur pour lire des infos dedans.J'affiche donc une fenetre parcourir po Besoin d'insérer le caractère "_" dans un string [ par Khaghan ] Bonjour chers lecteurs,Ma question est très basique :J'ai le nom d'un fichier qui contient le caractère "_". Je ne peux changer ce nom et pour ouvrir recherche de caractère [ par djcbx ] Bonjour, Une petite question à la noix. Existe t-il une fonction permettant de faire une recherche de caractere ou chaine de caractère sur un nom de récupérer une chaîne de caractère d'un fichier et l'afficher dans un textbox [ par maya77 ] bonsoir tous le monde je voudrais pouvoir parcourir un fichier récupérer les chaîne de caractère précédé d'un / puis afficher cette chaîne de caractè Caractère NULL dans un fichier [ par ricomiracle ] Bonjour,J'ai cherché partout et je n'ai pas trouvé de solution à mon problème : SUPPRIMER TOUT LES CARACTERES NULL CONTENUS DANS UN FICHIER.Le fichier Extraire chaine de caractère d'un fichier pdf [ par nikal86 ] Bonjour,Je souhaite extraire certaines chaines de caractère d'un fichier au format pdf. J'ai lu que xpdf serait apparemment approprié pour ce type d'a Identifier le code ASCII d'un caractère [ par PatBlarg ] Bonjour, j'ai chargé dans blocnotes un fichier d'un ancient logiciel DOS qui permet de créer des plaquettes d'identification sur une vieille machine. Trouver plusieurs instances d'un même caractère dans un fichier texte. [ par KokoJacK ] Bonjour à tous, voila mon titre explique déjà beaucoup ^^Déjà j'ai été assez dégouté de ne pas trouver une fonction qui permet de faire cela.Alors j'a


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,733 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales