[Catégorie modifiée VB6 --> .Net] Incrémenter une str comme un int.

Résolu
Nitrakz Messages postés 60 Date d'inscription dimanche 8 novembre 2009 Statut Membre Dernière intervention 19 octobre 2010 - 15 juil. 2010 à 09:25
Nitrakz Messages postés 60 Date d'inscription dimanche 8 novembre 2009 Statut Membre Dernière intervention 19 octobre 2010 - 16 juil. 2010 à 13:47
Bonjour,

Mon problème est le suivant j'extrait une chaine d'une requete sql, la chaine est de cette forme la:
"0000" / "0001" et je voudrait que si ma chaine est égal par exemple "0001" elle soit incrémenter de 1 et soit mise a "0002"

j'ai essayer avec format mais sa ne semble pas marche.

If Not dr(0) Is DBNull.Value Then
                'bool = False
                index = Format(dr(0).ToString.Substring(0, 4) + 1, "0000")
            Else
                index = "0000"
            End If


Merci.

There is no place like 127.0.0.1 /

6 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
15 juil. 2010 à 09:51
Salut
C'est sûr que cette syntaxe risque fort de ne pas fonctionner puisque c'est du VB.Net

On ne peut pas incrémenter des chaines. On ne peut incrémenter que des chiffres.
Il te faut donc :
- convertir ta chaine en nombre
- incrémenter ce nombre
- convertir ce nombre en chaine en respectant ton formatage
Essaye
index = Format(Val(dr(0) + 1), "0000")

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
3
Nitrakz Messages postés 60 Date d'inscription dimanche 8 novembre 2009 Statut Membre Dernière intervention 19 octobre 2010
15 juil. 2010 à 09:53
Oups j'ai du me tromper de forum oui je suis bien en VB .NET j'essaye avec ta méthode, merci pour la réponse.

There is no place like 127.0.0.1 /
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
15 juil. 2010 à 12:07
Val reste valable pour .Net :
index = Format(Val(dr(0).ToString) + 1, "0000")
0
Nitrakz Messages postés 60 Date d'inscription dimanche 8 novembre 2009 Statut Membre Dernière intervention 19 octobre 2010
15 juil. 2010 à 12:17
Oui je viens de l'implémenter ca marche bien, merci ;)


There is no place like 127.0.0.1 /
0

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

Posez votre question
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
15 juil. 2010 à 12:20
Bonjour,

Pour faire plus .NET :
index = (Integer.Parse(dr(0).ToString) + 1).ToString("0000")


Mon site
0
Nitrakz Messages postés 60 Date d'inscription dimanche 8 novembre 2009 Statut Membre Dernière intervention 19 octobre 2010
16 juil. 2010 à 13:47
Bonjour j'ai une autre question dans le même style,

je voudrait changer une chaine de type "XXXXXX XX XX V"
par un chaine identique mais en remplaçant "V" par "A"
"XXXXXX XX XX V" --> "XXXXXX XX XX A"

J'ai bien essayer avec un replace() mais sa fonctionne pas bien dans la mesure ou la longueur de la chaine peut changer, et que le reste de la chaine peut contenir des V ou des A.

Avec la fonction left() j'y arrive pas trop non plus, bien que le caractère que je veuille changer soit toujours celui tout a gauche.

Merci ;)

There is no place like 127.0.0.1 /
0
Rejoignez-nous