COMPLEMENTER UN STRING !

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 11 juin 2008 à 15:44
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Derniè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.

https://codes-sources.commentcamarche.net/source/46961-complementer-un-string

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
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

tests :
MsgBox StrBuffering("12", 5, True, "0")
MsgBox StrBuffering("12", 5, False, "0")
MsgBox StrBuffering("test", 10, False, " ")
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
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és 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
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és 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
13 juin 2008 à 23:15
Bonsoir,

Il n'existe pas déjà une fonction de VB pour faire cela ?

Amicalement,
Us.
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
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.

de plus,
? Format_String("Bonjour", 7, "")
? Format_String("Bonjour", 6, " ")

planterons, c'est dommage
Rejoignez-nous