philouxy
Messages postés36Date d'inscriptionjeudi 30 avril 2009StatutMembreDernière intervention18 janvier 2013
-
30 déc. 2009 à 23:13
philouxy
Messages postés36Date d'inscriptionjeudi 30 avril 2009StatutMembreDernière intervention18 janvier 2013
-
7 janv. 2010 à 20:07
Bonsoir à tous,
J'ai besoin de votre aide. Je suis bloqué dans un test.
Je vous explique mon soucis :
J'aimerai prendre la première valeur de ma chaîne de caractère, ensuite prendre la deuxième, ensuite la 3ème, ainsi de suite... Le problème, c'est que je n'ai pas trouvé une fonction qui me permette cela.
Dans la librairie MSDN j'ai vu qu'il y a des fonctions tel Mid, Left, Right ; le soucis c'est que l'on prend une série de caractères et non un seul...
Y a-t-il une fonction qui fait cela ? Ou dois-je en céer une ?
Avez-vous des exemples de codes, ou des explications, ou des liens pour m'amener à résoudre mon problème.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 31 déc. 2009 à 08:21
Salut
Comme le dit PCPT, Mid permet d'isoler un seul des caractères de ta chaine, suffit de lui dire à quel endroit la prendre et combien de caractères tu veux isoler.
Une simple boucle For-Next avec, pour délimiteur de fin, la longueur de la chaine (Len) et tu pourras énumérer chaque caractère.
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)
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 31 déc. 2009 à 14:41
Bonjour,
1) à khouja_mustapha : split sur quel séparateur ?
2) à philouxy
Si ta chaîne est longue, l'utilisatiobn de Mid sera cause de lenteurs ...
Utilise la fonction strconv de l'une de ces deux manières possibles :
a)
dim toto() as byte
toto=strconv(ta_chaine,vbfromunicode)
toto sera alors un tableau contenant le code ascii de chacunh des caractères de ta chaîne, à transformer en chr ainsi : chr(toto(n) (ou n = index dans le tableau toto)
ou
b)
toto=strconv(ta_chaine,vbunicode)
titi = split(toto, chr(0)
et titi sera un array contenant directement chaque caractère de ta chaîne
titi(n) pour le caractère correspondant à l'index n de titi
____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 31 déc. 2009 à 14:44
Pardon : ajoute une parenthèse tant après chr(0) (2ème méthode) qu'après chr(toto(n) (1ère méthode)
____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 31 déc. 2009 à 17:37
Et où as-tu vu :
1) que sa chaine contient des espaces ?
2) qu'il voudrait l'éclater en mots séparés par des espaces ?
Relis donc sa demande : il veut extraire, caractère par caractère, chacun des caractères de sa chaîne !
____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
philouxy
Messages postés36Date d'inscriptionjeudi 30 avril 2009StatutMembreDernière intervention18 janvier 2013 7 janv. 2010 à 20:07
Bonsoir à tous,
Désolé pour cette réponse tardive. Merci à vous tous pour ces réponses détaillées
Effectivement je me suis embrouillé les pinceaux avec cette fonction "Mid", car je peux lire caractère par caractère...J'ai effectivement utiliser une boucle For-Next et à l'intérieur de cette boucle, la fonction Mid comme tu me l'as proposé Jack.
@Ucfoutu, merci pour cette fonction je l'essaierai aussi, là je veux lire simplement 3 caractères à un endroit précis, donc la fonction Mid à l'air de marché... J'ai pas encore un grand niveau pour optimiser mon code...
Pour l'instant je continue mon code, mais je sens que je vais pas tarder à vous reposer des questions, mais sur un autre sujet.