Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 2021
-
11 juin 2008 à 15:44
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 2018
-
14 juin 2008 à 22:33
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 14 juin 2008 à 22:33
exact.
à noter que le premier test
MsgBox Chr(39) & Cmplt_String(a, 5, "0") & Chr(39)
existe lui :
MsgBox Format$(a, "00000")
voici un manière possible un peu plus complète
Function StrBuffering(ByVal sStr As String, ByVal lLength As Long, ByVal bFillFromLeft As Boolean, Optional ByVal sChar As String = vbNullChar) As String
If (LenB(sChar) = 2) And (lLength > 0) And (LenB(sStr) >= 2) Then
If Len(sStr) >= lLength Then
StrBuffering = Left$(sStr, lLength)
Else
StrBuffering = String$(lLength, sChar)
If bFillFromLeft Then
Mid$(StrBuffering, 1, Len(sStr)) = sStr
Else
Mid$(StrBuffering, lLength - Len(sStr) + 1) = sStr
End If
End If
End If
End Function
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 14 juin 2008 à 21:57
Hum... ou la femme de ménage :-);
Salut PCPT, et Renfield...
On dira à theophile, avant disparition que la ligne :
Cmplt_Str = Mid(String_In, 1, Nb_Char)
est à corriger avec :
Cmplt_String = Mid(String_In, 1, Nb_Char)
mais, bon il reste encore des améliorations à faire...
Amicalement,
Us.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 14 juin 2008 à 02:08
salut,
pas en VB6 non...
toujours est-il que ces quelques lignes ne valent pas pour exemple à suivre
et j'vais encore passer pour le méchant en les supprimant :'(
(raison évidente et évoquée)
++
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 13 juin 2008 à 23:15
Bonsoir,
Il n'existe pas déjà une fonction de VB pour faire cela ?
Amicalement,
Us.
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 11 juin 2008 à 15:44
tiens plus du Snippet qu'autre chose...
pas la possibilité de spécifier i on padde au gauche ou a droite.
14 juin 2008 à 22:33
à noter que le premier test
MsgBox Chr(39) & Cmplt_String(a, 5, "0") & Chr(39)
existe lui :
MsgBox Format$(a, "00000")
voici un manière possible un peu plus complète
Function StrBuffering(ByVal sStr As String, ByVal lLength As Long, ByVal bFillFromLeft As Boolean, Optional ByVal sChar As String = vbNullChar) As String
If (LenB(sChar) = 2) And (lLength > 0) And (LenB(sStr) >= 2) Then
If Len(sStr) >= lLength Then
StrBuffering = Left$(sStr, lLength)
Else
StrBuffering = String$(lLength, sChar)
If bFillFromLeft Then
Mid$(StrBuffering, 1, Len(sStr)) = sStr
Else
Mid$(StrBuffering, lLength - Len(sStr) + 1) = sStr
End If
End If
End If
End Function
tests :
MsgBox StrBuffering("12", 5, True, "0")
MsgBox StrBuffering("12", 5, False, "0")
MsgBox StrBuffering("test", 10, False, " ")
14 juin 2008 à 21:57
Salut PCPT, et Renfield...
On dira à theophile, avant disparition que la ligne :
Cmplt_Str = Mid(String_In, 1, Nb_Char)
est à corriger avec :
Cmplt_String = Mid(String_In, 1, Nb_Char)
mais, bon il reste encore des améliorations à faire...
Amicalement,
Us.
14 juin 2008 à 02:08
pas en VB6 non...
toujours est-il que ces quelques lignes ne valent pas pour exemple à suivre
et j'vais encore passer pour le méchant en les supprimant :'(
(raison évidente et évoquée)
++
13 juin 2008 à 23:15
Il n'existe pas déjà une fonction de VB pour faire cela ?
Amicalement,
Us.
11 juin 2008 à 15:44
pas la possibilité de spécifier i on padde au gauche ou a droite.
de plus,
? Format_String("Bonjour", 7, "")
? Format_String("Bonjour", 6, " ")
planterons, c'est dommage