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

Signaler
Messages postés
60
Date d'inscription
dimanche 8 novembre 2009
Statut
Membre
Dernière intervention
19 octobre 2010
-
Messages postés
60
Date d'inscription
dimanche 8 novembre 2009
Statut
Membre
Dernière intervention
19 octobre 2010
-
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

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
73
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)
Messages postés
60
Date d'inscription
dimanche 8 novembre 2009
Statut
Membre
Dernière intervention
19 octobre 2010

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 /
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
73
Val reste valable pour .Net :
index = Format(Val(dr(0).ToString) + 1, "0000")
Messages postés
60
Date d'inscription
dimanche 8 novembre 2009
Statut
Membre
Dernière intervention
19 octobre 2010

Oui je viens de l'implémenter ca marche bien, merci ;)


There is no place like 127.0.0.1 /
Messages postés
14757
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
14 janvier 2021
151
Bonjour,

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


Mon site
Messages postés
60
Date d'inscription
dimanche 8 novembre 2009
Statut
Membre
Dernière intervention
19 octobre 2010

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 /