cs_radada
Messages postés488Date d'inscriptionlundi 15 septembre 2003StatutMembreDernière intervention21 avril 2009
-
2 janv. 2004 à 20:52
cs_radada
Messages postés488Date d'inscriptionlundi 15 septembre 2003StatutMembreDernière intervention21 avril 2009
-
3 janv. 2004 à 17:33
Salut les gars : )
Ca va??? Bon réveillon??? Bon allez, je vous emmerde dés le début d'année. Je souhaite en fait trouver plein de sous chaines commencant toutes par le même caractère % (la suite pouvant être variable, mais toujours sur 2 caractères en plus du %) et les remplacer par le code ascii correspondant. En fait c'est super simple : dans un texte, j'ai des %20, des %13 (et plein d'autres) et en fait, je voudrais pouvoir remplacer le %20 par Asc(20) (espace donc), le %13 par Asc(13), etc... et ceci, sans faire de boucle bien sur, en testant simplement les 2 caractères derrière un % et en faisant un replace ; ). C'est possible docteur??? %Merci d'avance :D:D
cs_labout
Messages postés1356Date d'inscriptionsamedi 8 décembre 2001StatutMembreDernière intervention23 octobre 20068 2 janv. 2004 à 22:59
labout
Utilise la fonction split de ta chaine
dim Tableau() as string
tableau=split(chaine,"%")
Tu remplace ensuite pour chaque élément du tableau par la valeur ascii
Seul petit problème c'est que le premier élément sera vide
Supposons que tu ai dans ta chaine
%20%30%32%21%64
tableau(0) contiendra ""
tableau(1) contiendra 20 etc
ensuite
for i=1 to ubound(tableau)
tableau(i)=chr(tableau(i))
cs_radada
Messages postés488Date d'inscriptionlundi 15 septembre 2003StatutMembreDernière intervention21 avril 20091 3 janv. 2004 à 12:54
Ca peut marcher, mais le pb c'est que ma chaine contient d'autres caractères alphabétiques : ((. Je vais le faire en C++, ça ira + vite... Merci quand même et bonne année ausi ; )
cs_rene38
Messages postés1858Date d'inscriptionsamedi 29 juin 2002StatutMembreDernière intervention17 octobre 201311 3 janv. 2004 à 16:12
Bonjour, bonne année, bonne santé, bonne prog & tutti quanti
Ta chaîne étant dans la variable Texte,
Do
Place = InStr(Texte, "%")
If Place = 0 Then Exit Do
Texte = Left$(Texte, Place - 1) & Chr$(Val(Mid$(Texte, Place + 1, 2))) & Mid$(Texte, Place + 3)
Loop
quoique ... quand tu écris
remplacer le %20 par <s>Asc</s> Chr$(20) (espace donc) ,
ça veut dire que tes nombres sont en hexadécimal puisqueespace Chr$(32) Chr$(&H20)
Il faut donc, dans ce cas remplacer, dans le code ci-dessus,
Chr$(Val(Mid$(Texte, Place + 1, 2))) par
Chr$(Val("&H" & Mid$(Texte, Place + 1, 2)))
En revanche, si les codes ASCII sont en décimal, le code fonctionne tel quel.
cs_radada
Messages postés488Date d'inscriptionlundi 15 septembre 2003StatutMembreDernière intervention21 avril 20091 3 janv. 2004 à 17:33
Lol, ouais je me suis trompé entre le Asc et le Chr, et merci beaucoup pour ton aide, mais je l'ai fait en C++ du coup. Mais j'essaierai avec ta méthode en tout cas. Merci encore et bonne année à toi aussi ; ))