Fonction substring en vb
Fermé
providence
Messages postés
98
Date d'inscription
dimanche 22 janvier 2006
Statut
Membre
Dernière intervention
18 novembre 2015
-
13 juin 2007 à 23:46
bob - 11 janv. 2012 à 10:17
bob - 11 janv. 2012 à 10:17
A voir également:
- Vb.net substring
- Vb.net download - Télécharger - Langages
- VB Editor - Télécharger - Langages
- Ksh substring - Forum Shell
- Listview vb.net - Forum Framework .NET
- Vb.net 2008 - Télécharger - Langages
2 réponses
irem
Messages postés
164
Date d'inscription
mardi 22 mai 2007
Statut
Membre
Dernière intervention
9 octobre 2012
99
14 juin 2007 à 05:18
14 juin 2007 à 05:18
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
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
irem
Messages postés
164
Date d'inscription
mardi 22 mai 2007
Statut
Membre
Dernière intervention
9 octobre 2012
99
15 juin 2007 à 06:06
15 juin 2007 à 06:06
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
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
14 juin 2007 à 12:00
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
11 janv. 2012 à 10:17