METTRE UNE DOUBLE QUOTE QUAND IL Y A QU'UNE QUOTE!!!

Nix Messages postés 831 Date d'inscription samedi 15 mai 1999 Statut Membre Dernière intervention 18 juillet 2009 - 9 juin 2004 à 16:22
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 - 10 juin 2004 à 18:45
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/23546-mettre-une-double-quote-quand-il-y-a-qu-une-quote

crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
10 juin 2004 à 18:45
Ouais !! Ben vive le Replace de Nix !! D'ailleur au passage, moi je mettrais plutot Replace$(...)
sibi12 Messages postés 337 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 15 avril 2006
10 juin 2004 à 11:20
de plus ca bug si on met des espace au debut de l'argument avec un quote vers la fin (trim enleve les esapce a gauche et a droite)

pour VB5, avec test en byval, voila plus rapide :

i = InStr(1, test, "'")
While i
Mid(test, i, 1) = """"
i = InStr(i, test, "'")
Wend
replquot=test

@+
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
9 juin 2004 à 19:17
d'accord avec Nix

pas tout a fait avec ta boucle...

1 - pourquoi declarer i en Static ?
2 - que fait b ?
3 - pourquoi ne pas restituer toute la chaine ?
en clais, tu fais une boucle jusqu'à len ( Trim ( test ))
donc, tu n'analyse pas les n derniers espaces, qui disparaissent !

autre chose, cote optimisation (et sans utilise Replace)
tu pourrais declarer ton parametre test en ByRef...
tu devrais eviter de recalculer Mid(test, i, 1) (utilises donc b !! )

et utilise Mid$ a la place de Mid

voila voila...
Nix Messages postés 831 Date d'inscription samedi 15 mai 1999 Statut Membre Dernière intervention 18 juillet 2009
9 juin 2004 à 18:30
Pas """" mais " ' ' " (retirer les espace)
En traduction textuelle ça donne
Guillement Apostrophe Apostrophe Guillement
cs_revo Messages postés 70 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 7 juin 2006
9 juin 2004 à 17:47
ca marche ca """"?
je pencherai plutot sur un truc du genre
test=replace(test,"'",chr$(34))
Nix Messages postés 831 Date d'inscription samedi 15 mai 1999 Statut Membre Dernière intervention 18 juillet 2009
9 juin 2004 à 16:22
En plus simple, plus rapide et plus performant :
test = Replace(test ,"'","''")
La boucle ce n'est pas une bonne idée, c'est long.
Toutefois, cette fonction Replace n'éxiste pas sous VB5 ! Donc ta fonction est bonne pour VB5 il faut le préciser mais pour VB6 il faut utiliser le Replace()
Rejoignez-nous