METTRE UNE DOUBLE QUOTE QUAND IL Y A QU'UNE QUOTE!!!
Nix
Messages postés831Date d'inscriptionsamedi 15 mai 1999StatutMembreDernière intervention18 juillet 2009
-
9 juin 2004 à 16:22
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDerniè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.
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 10 juin 2004 à 18:45
Ouais !! Ben vive le Replace de Nix !! D'ailleur au passage, moi je mettrais plutot Replace$(...)
sibi12
Messages postés337Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention15 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és17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 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és831Date d'inscriptionsamedi 15 mai 1999StatutMembreDernière intervention18 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és70Date d'inscriptionsamedi 21 décembre 2002StatutMembreDerniè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és831Date d'inscriptionsamedi 15 mai 1999StatutMembreDernière intervention18 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()
10 juin 2004 à 18:45
10 juin 2004 à 11:20
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
@+
9 juin 2004 à 19:17
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...
9 juin 2004 à 18:30
En traduction textuelle ça donne
Guillement Apostrophe Apostrophe Guillement
9 juin 2004 à 17:47
je pencherai plutot sur un truc du genre
test=replace(test,"'",chr$(34))
9 juin 2004 à 16:22
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()