threadom
Messages postés101Date d'inscriptionmardi 8 avril 2003StatutMembreDernière intervention 1 novembre 2007 16 oct. 2006 à 00:10
Petit Mix final, j'ai repris PCPT, BOUV, et MUAD-DIB, vbPink pour obtenir :
Ca répond a peu près a tout les critères de tout le monde je crois et c'est a mon avis le plus rapide tout en respectant les valeurs et tailles de VB6.
Public Function IsValidName(ByVal strFileName As String) As Boolean
Const sInterdit As String = "\/:*?""<>|"
Dim i As Integer
IsValidName = True
For i = 1 To Len(sInterdit)
If (InStr(strFileName, Mid$(sInterdit, i, 1)) <> 0) Then IsValidName = False: Exit Function
Next i
End Function
vbPink
Messages postés23Date d'inscriptionmardi 8 août 2006StatutMembreDernière intervention30 août 2006 9 août 2006 à 21:38
Je suis d'accord pour la diversité des astuces, mais pourquoi faire compliqué quand on peut faire simple ?
Ta fonction est très longue, on peut résumer en beaucoup moins de lignes pour une efficaté accrue.
Exemple :
Public Function IsValidName(ByVal sFile As String) As Boolean
Dim i As Byte
Dim sChar As String
sChar = "\/*?:<>|" & Chr(34)
For i = 1 To Len(sFile)
If InStr(1, sChar, Mid$(sFile, i, 1)) > 0 Then
IsValidName = False
Exit Function
End If
Next i
IsValidName = True
End Function
gallyhc
Messages postés386Date d'inscriptionsamedi 4 octobre 2008StatutMembreDernière intervention19 février 20182 14 févr. 2006 à 23:49
Bonjour,
Merci au divers personne qui ont rebondit a cette petite astuce, car maintenant je penses qu'elle est vraiment pas trop mal.
Bonnne programmation a tous,
[Gally Home Corp]
gallyhc
Messages postés386Date d'inscriptionsamedi 4 octobre 2008StatutMembreDernière intervention19 février 20182 14 févr. 2006 à 19:47
Bonjour,
Pas de problème pour vos méthodes, l'avantage c'est qu'avec ce ke j'ai posté il y a maintenant plusieurs méthode.
Cela dit, il n'est pas obligatoire de me soutenir "PCPT". Je ne fait cela que pour donné un petit coup de main au personne de ce site. Mais merci quand même ;-)
Et comme veux que ce soit le mieu possible je vais ajouté la 2eme méthode.
Bonnne programmation
[Gally Home Corp]
cs_muad-dib
Messages postés103Date d'inscriptionlundi 9 avril 2001StatutMembreDernière intervention16 juillet 2008 14 févr. 2006 à 19:40
et pourquoi pas tout simplement IsValidName comme nom de fonction?......
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 14 févr. 2006 à 18:06
salut Bouv,
exact est d'accord avec toi. j'ai voulu aller trop vite ^^
(faut vraiment que j'apprenne à me relire.....)
pour le retour néanmoins, mais plus par habitude d'initialiser, pas tout à fait ok. donc une ligne de plus en entête avec GetIsValidName=False.
on peut aussi terminer juste avec GetIsValidName=True, en remplaçant Exit For par Exit Function.
des manières, il y en a souvent plusieurs, faut tout de même soutenir Gally ;)
++
bouv
Messages postés1411Date d'inscriptionmercredi 6 août 2003StatutMembreDernière intervention 3 mars 20191 14 févr. 2006 à 17:42
Salut, petite erreur dans le code de PCPT
Remplacer For i = 1 To Len(i)
par For i = 1 To Len(sInterdit)
Cela dit je prefere :
Private Function GetIsValidName(ByVal strFileName As String) As Boolean
Const sInterdit As String = "\/:*?""<>|"
Dim i As Integer
For i = 1 To Len(sInterdit)
If InStr(strFileName, Mid$(sInterdit, i, 1)) Then GetIsValidName = True: Exit For
Next i
GetIsValidName = Not GetIsValidName
End Function
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 14 févr. 2006 à 15:57
si t'aimes pas les "IIf", tu peux remplacer par
GetIsValidName (lngI &H0)
(j'aime moins... question de goût ^^)
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 14 févr. 2006 à 15:54
salut,
ouai çà peut être pratique, sachant aussi que çà se simplifie pas mal. et pour le nom, peut-être plus GET que SET, non?
Private Function GetIsValidName(ByVal strFileName As String) As Boolean
Const sInterdit As String = "\/:*?""<>|"
Dim lngI As Long, i As Integer: lngI = 0
'
For i = 1 To Len(i)
lngI = lngI + InStr(1, strFileName, Mid$(sInterdit, i, 1))
Next i
'
GetIsValidName IIf(lngI &H0, True, False)
End Function
tu peux ensuite également ajouter la vérif d'une extension, etc... ;)
16 oct. 2006 à 00:10
Ca répond a peu près a tout les critères de tout le monde je crois et c'est a mon avis le plus rapide tout en respectant les valeurs et tailles de VB6.
Public Function IsValidName(ByVal strFileName As String) As Boolean
Const sInterdit As String = "\/:*?""<>|"
Dim i As Integer
IsValidName = True
For i = 1 To Len(sInterdit)
If (InStr(strFileName, Mid$(sInterdit, i, 1)) <> 0) Then IsValidName = False: Exit Function
Next i
End Function
9 août 2006 à 21:38
Ta fonction est très longue, on peut résumer en beaucoup moins de lignes pour une efficaté accrue.
Exemple :
Public Function IsValidName(ByVal sFile As String) As Boolean
Dim i As Byte
Dim sChar As String
sChar = "\/*?:<>|" & Chr(34)
For i = 1 To Len(sFile)
If InStr(1, sChar, Mid$(sFile, i, 1)) > 0 Then
IsValidName = False
Exit Function
End If
Next i
IsValidName = True
End Function
14 févr. 2006 à 23:49
Merci au divers personne qui ont rebondit a cette petite astuce, car maintenant je penses qu'elle est vraiment pas trop mal.
Bonnne programmation a tous,
[Gally Home Corp]
14 févr. 2006 à 19:47
Pas de problème pour vos méthodes, l'avantage c'est qu'avec ce ke j'ai posté il y a maintenant plusieurs méthode.
Cela dit, il n'est pas obligatoire de me soutenir "PCPT". Je ne fait cela que pour donné un petit coup de main au personne de ce site. Mais merci quand même ;-)
Et comme veux que ce soit le mieu possible je vais ajouté la 2eme méthode.
Bonnne programmation
[Gally Home Corp]
14 févr. 2006 à 19:40
14 févr. 2006 à 18:06
exact est d'accord avec toi. j'ai voulu aller trop vite ^^
(faut vraiment que j'apprenne à me relire.....)
pour le retour néanmoins, mais plus par habitude d'initialiser, pas tout à fait ok. donc une ligne de plus en entête avec GetIsValidName=False.
on peut aussi terminer juste avec GetIsValidName=True, en remplaçant Exit For par Exit Function.
des manières, il y en a souvent plusieurs, faut tout de même soutenir Gally ;)
++
14 févr. 2006 à 17:42
Remplacer For i = 1 To Len(i)
par For i = 1 To Len(sInterdit)
Cela dit je prefere :
Private Function GetIsValidName(ByVal strFileName As String) As Boolean
Const sInterdit As String = "\/:*?""<>|"
Dim i As Integer
For i = 1 To Len(sInterdit)
If InStr(strFileName, Mid$(sInterdit, i, 1)) Then GetIsValidName = True: Exit For
Next i
GetIsValidName = Not GetIsValidName
End Function
14 févr. 2006 à 15:57
GetIsValidName (lngI &H0)
(j'aime moins... question de goût ^^)
14 févr. 2006 à 15:54
ouai çà peut être pratique, sachant aussi que çà se simplifie pas mal. et pour le nom, peut-être plus GET que SET, non?
Private Function GetIsValidName(ByVal strFileName As String) As Boolean
Const sInterdit As String = "\/:*?""<>|"
Dim lngI As Long, i As Integer: lngI = 0
'
For i = 1 To Len(i)
lngI = lngI + InStr(1, strFileName, Mid$(sInterdit, i, 1))
Next i
'
GetIsValidName IIf(lngI &H0, True, False)
End Function
tu peux ensuite également ajouter la vérif d'une extension, etc... ;)
++
PCPT [AFCK]