Mid

cs_Urgo Messages postés 780 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 16 avril 2009 - 27 juil. 2003 à 01:51
cs_Urgo Messages postés 780 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 16 avril 2009 - 28 juil. 2003 à 09:31
Voilà là j'ai la tete dans le cul et je bloque sur une connerie mais je vois pas du tout comment faire :

J'ai une suite de lignes de codes :

Data2 = Mid(Data2, 6)
Data2 = Mid(Data2, InStr(1, Data2, Chr(0)) + 1)
Data2 = Mid(Data2, InStr(1, Data2, Chr(0)) + 1)
Data2 = Mid(Data2, InStr(1, Data2, Chr(0)) + 1)
Data2 = Mid(Data2, InStr(1, Data2, Chr(0)) + 1)
Data2 = Mid(Data2, InStr(1, Data2, Chr(0)) + 1)
Data2 = Mid(Data2, 3)
Data2 = Mid(Data2, 2)

Que j'aimerais trandformer en UNE SEULE ligne de code :)
Si vous avez la réponse, merci de me répondre, sinon je vais surement trouver ça avant lundi, enfin j'espère
Bye

6 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
27 juil. 2003 à 11:37
C'est sensé faire quoi ton code?

Si c'est du découpage tu peux regardé la fonction split

data2 = "19:15:20"

array = split(data2,":")
data1 = array(0) --> 1element --> 19
data3 = array(1) --> 1element --> 15
...

chr(0) = vbNullChar je ne vois pas ce que tu veux faire avec des caractère null

explicite ton problème un peu mieux
0
cs_Urgo Messages postés 780 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 16 avril 2009 1
27 juil. 2003 à 14:28
En fait Data2 est de cette forme :

ÿÿÿÿm209.66.98.27:27016 5th Rangers Battalion HQ dod_charlie dod Day of Defeat .dl http://www.dayofdefeat.net   

-Il y a toujours les 5 caractères (ÿÿÿÿm) au début qui ne changent pas
- Vient l'ip et le port qui peuvent varier (sauf la longueur du port).
- Vient ensuite le nom du serveur
- le nom de la map qui est toujours de la forme "dod_??????".
- "dod Day of Defeat" ne change jamais.
-" .dl" peut devenir " .dw" ou " .lw" ou " .ll"

Or moi dans tout ça, g Data2 qui ressemble au truc ci-dessus et je voudrais simplement chopper les 2 caractères "dw" ou "lw" ou" ll" ou dl" !

C'est tout con mais je trouve pas, ça merdouille :(
0
cs_Urgo Messages postés 780 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 16 avril 2009 1
27 juil. 2003 à 14:38
C bon g trouvé
En fait g fait Data_Strings = Split(Mid(Data2, 6), Chr(0), -1, 1)
Et le tour est joué lol
Merci quant meme

Bye
0
cs_liquide Messages postés 1016 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 24 juin 2008
27 juil. 2003 à 16:28
ca a l'air drolement bien ton split, je ne connaissais pas et je sents que ca peut m'interesser mais pour sortir ce que tu as besoin, je vois pas pk tu as besoin du Mid puisque le chr(0) que tu trouve est le 1er
sinon si tu as un exemple du split pour ressortir plusieurs termes dans une chaine je suis preneur

liquide
0

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

Posez votre question
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
27 juil. 2003 à 22:34
time1 = "19:15:20"

array = split(time1,":")
heure = array(0) --> 1element --> 19
minute = array(1) --> 2element --> 15
seconde = array(2) --> 3element --> 20

et tu a la fonction inversion qui est join

time1 = join(array,":")
---> "19:15:20"

ce qui est fort aussi c'est les split imbriquée

pour des expressions du genre

27/03/2003 19:22:32

1split avec " "
2eme split avec / sur array(0)
3eme split avec : sur array(1)

je pense que tu a compris ce ptit cours :-)
0
cs_Urgo Messages postés 780 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 16 avril 2009 1
28 juil. 2003 à 09:31
T'as donné un exemple "facile" mais c'est très bien pour débuter :)
0
Rejoignez-nous