VIVEZ LE
FOOTBALL !

Posez votre question Signaler

Fonction substring en vb

providence 101Messages postés 22 janvier 2006Date d'inscription 24 novembre 2010Dernière intervention - Dernière réponse le 11 janv. 2012 à 10:17
bonjourr,
j'aimerais savoir si la fonction 'SUBSTRING' est bien une fonction de visual basic si oui quel est son principe de fonctionnement.Merci pour votre aide
Lire la suite 

Fonction substring en vb »

Suggestions
4 réponses
Réponse
+8
moins plus
substring est bien une fonction de vb mais uniquement en .net

L'utilisation en est simple

$toto ="123456789"
$toto.substring (2,4) donne "2345", du 2eme caractere 4 caracteres

Dans les anciennes versions, il fallait utiliser mid$ de la formr mid$(toto,2,4) -> "2345"

Irem
providence- 14 juin 2007 à 12:00
merci irem pour ta reponse.en fait j'ai un programme à ecrire en vb6 professionnel dans le cadre d'un projet d'ecole.l'enoncé est le suivant:
Dans l'enclypedie des jeux 2007, il a fallu utiliser 2007 fois "1" pour numeroter toutes les pages.
Ecrire un programme VB6 qui puisse nous permettre de determiner le nombre de pages de cette encyclopedie.
Nb: Quand on numerote par exemple de 1 à 20, on utilise 12 fois 1!

Sur le forum j'au eu une esquisse de solution ou intervient la fonction SUBSTRING mais je suis pas très sur kel fonctionne.Je voudrais avoir ton avis la dessus.ci dessous la solution:

Option explicit

dim i as integer
dim chaine as string
dim nb_page as integer

nb_page =0
i=0

While (i<>2007)

chaine=str(i) 'j'ai des doutes quant à la syntaxe de conversion d'un entier en chaine de caractères

'ici tu lis ta chaine de caractères en mettant un if du style

' On parcourt tant qu'il reste des "1" dans la chaine.
j=0
while(substring(j,chaine,"1")>0)
nb_page=nb_page+1
j=substring(j,chaine,"1")
wend
i=i+1 'indispensable pour ne pas avoir de boucle infini!

Wend
bob - 11 janv. 2012 à 10:17
saol irem
Ajouter un commentaire
Réponse
+1
moins plus
Salut providence,

ton algorithme est faux, en effet ta boucle compte en fait a priori le nombre de 1 dans 2007 pages et non le nombre de pages pour avoir 2007 "1", il faudrait plutôt écrire

Function test() As Integer
Dim int_I, Int_Pages As Integer
Dim str_Temp As String
int_I = 0
Int_Pages = 0
While int_I < 2007
Int_Pages = Int_Pages + 1
str_Temp = Int_Pages
While InStr(1, str_Temp, "1") > 0
int_I = int_I + 1
str_Temp = Right(str_Temp, Len(str_Temp) - InStr(1, str_Temp, "1"))
Wend
Wend
test = Int_Pages
End Function

et tu obtiens 3169 pages

Irem
Ajouter un commentaire
Ce document intitulé « fonction substring en vb » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?