VB6 Replace ???

cs_MagDix Messages postés 531 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 6 octobre 2012 - 12 juin 2006 à 19:24
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 13 juin 2006 à 11:39
Salut...

Encore une patite question à propos du replace... ou enfin un autre fonction....

Si j'ai ce nombre "00020" ou "00120"

Comment je fais pour coder si je veux arrievr à ces résultats
si "00020" je dois arriver à 20 (les deux derniers chiffres)
Si "00120" je dois arriver à 120 (les trois derniers chiffrs)

je ne peux pas faire de Replace et je ne vois pas comment je peux utiliser le Left ou Right étant donné que j'ai toujours 5 caractères mais le résultat peux varier soit avoir 1, 2 ou 3 chiffres

Je suis perdu...

J'attends votre aide pour m'éclairer un peu...

merci

8 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
12 juin 2006 à 19:39
S'il ne s'agit que de chiffres avec des zéros devant, récupère leur valeur (avec un Val(tonNombre) ) ainsi ca t'enlèvera les 0 devant.

_
Avant de poster dans le forum,
prière d'aller lire ceci :
http://www.codes-sources.com/reglement.aspx
<s></s>
0
cs_MagDix Messages postés 531 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 6 octobre 2012 1
12 juin 2006 à 20:12
Salut c'est encore moi... ok la Val fonctionne tres bien si c'est du numérique mais si j'ai par exemple "000T2" bon ici je peux utiliser un replace... mais si j'ai "00T20" et je veux donc les trois dernières lettres/chiffres

Je veux T20

Quel est la fonction magique ????

S'cuse moi j'aurais du en parler à mon premiere message je croyais que qu'il y avait qu'une seule fonction pour faire cela... sorry
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
12 juin 2006 à 23:55
Salut

Regardes du coté des regexp et replace
http://www.vbfrance.com/codes/UTILISATION-EXPRESSIONS-REGULIERES_4185.aspx

1. ' Retourne la chaine dénudée de ses balises html
2. Public Function enleveMoiLesBalisesHTML(chaine As String)
3. Dim regExp As VBScript_RegExp.regExp
4. Set regExp = New VBScript_RegExp.regExp
5. regExp.Pattern = "<(.*)>" ' Définition de la balise HTML
6. regExp.Global = True ' On traite toute la chaine
7. enleveMoiLesBalisesHTML = regExp.Replace(chaine, "")
8. End Function

Mais le probleme est de trouver la bonne expression pour le faire.
Et la je seche.

Mais ca peut donner une piste pour un prochain post ;-)
Et te quider dans ta recherche.
Donne nous la solution si tu trouves.
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
13 juin 2006 à 07:50
Bonjour

Result=Replace(ChaineAvec0,"0","")

Il est plus facile de batiser quelqu'un que de la convertir. (surtout en programmation)
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)

<fon></fon>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
13 juin 2006 à 08:44
Salut,

Le probleme est que les derniers zeros seront supprimés?

Ex 000T20  --> T2 a la place de T20

Une solution est de
if ismureric (eval(machaine)) then
eval(machaine)
else
boucle

for i=0 to machaine.length  -1
if machaine(i) = 0 then
machaine(i)  ="'
else
'premiere lettre
exit for
endif

Un algo du genre devrait marché????

Bon courage
next
 
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
13 juin 2006 à 09:13
Bonjour

Oui, en effet.
Une petite erreur :
if machaine(i) = 0 then
serait plutot
if mid( machaine,i,1) = "0" then

Et j'opterais plutot pour un code du style :

public function SupprZero(byval pStr as string) as string
    Dim i as long
    Dim Start as long
    for i=1 to len(pStr) 'Voir si base 0 ou 1
       if mid(pStr,i,1)<>"0" then
          Start=i
          exit for
       end if
    Next
    SupprZero=right(pStr,len(pStr)-Start-1)
End Function  

Il est plus facile de batiser quelqu'un que de la convertir. (surtout en programmation)
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)

<fon></fon>
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
13 juin 2006 à 11:04
pour une RegExp possible :

"^0*"

0 ou plus caractères '0' placés en début de chaine...

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
13 juin 2006 à 11:39
Attention, NHenry, ce n'est pas :

right(pStr,len(pStr)-Start-1)

mais :

right(pStr,len(pStr)-Start + 1)

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
Rejoignez-nous