OVH Cloud OVH Cloud

Replacer les caractères spéciaux dans une chaine ?

6 réponses
Avatar
Dejardin Nicolas
Bonjour,

est-ce qu'il existe en vb une fonction qui permet de vérifier si il existe
des caractères spéciaux dans une chaine de caractères et d'éventuellement
pouvoir les remplacer ?

cette chaine de caractères a utilisée pour définir le chemin et le nom d'un
fichier donc si jamais un caractère spécial existe dans cette chaine, le
fichier n'aura pas le bon nom

merci d'avance

6 réponses

Avatar
X
Bonjour,

Par exemple une recherche sur la valeur, mais il y a plusieurs
possiblités à adopter en fonction surtout de la longueur de la recherche:

dim ascii as integer
dim alpha as string *1
dim i as long
'
for i = 1 to maxi
alpha = mid(chaine, i, 1)
ascii = Asc(alpha)
select case acsii
case 0 to 31: goto caractere_special
case 32 to 122 ...: goto caractere_normal
end select
next i
goto suite
'
caractere_special:
'...
goto suite
'
caractere_normal:
'...
goto suite
''''''''''''
suite:
'..........




--
Merci beaucoup, au revoir et à bientôt :o)
------
Site logiciels
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Principe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
------------------------------------------------------------------------------------
"Dejardin Nicolas" a écrit dans le message de news:
4416d9ee$0$28095$
Bonjour,

est-ce qu'il existe en vb une fonction qui permet de vérifier si il existe
des caractères spéciaux dans une chaine de caractères et d'éventuellement
pouvoir les remplacer ?

cette chaine de caractères a utilisée pour définir le chemin et le nom
d'un
fichier donc si jamais un caractère spécial existe dans cette chaine, le
fichier n'aura pas le bon nom

merci d'avance





Avatar
FL
Salut,

Regardes la fonction Replace



"Dejardin Nicolas" a écrit dans le message de news:
4416d9ee$0$28095$
Bonjour,

est-ce qu'il existe en vb une fonction qui permet de vérifier si il existe
des caractères spéciaux dans une chaine de caractères et d'éventuellement
pouvoir les remplacer ?

cette chaine de caractères a utilisée pour définir le chemin et le nom


d'un
fichier donc si jamais un caractère spécial existe dans cette chaine, le
fichier n'aura pas le bon nom

merci d'avance





Avatar
jean-marc
"X" wrote in message news:
Bonjour,

Par exemple une recherche sur la valeur, mais il y a plusieurs
possiblités à adopter en fonction surtout de la longueur de la recherche:

dim ascii as integer
dim alpha as string *1
dim i as long
'
for i = 1 to maxi
alpha = mid(chaine, i, 1)
ascii = Asc(alpha)
select case acsii
case 0 to 31: goto caractere_special
case 32 to 122 ...: goto caractere_normal
end select
next i
goto suite



NON !

Je m'abstient en général mais la, on ne peut pas laisser passer
ça :-(

C'est comme si sur un site pour jeunes conducteurs tu intervenais
pour dire que conduire à 200 KM/H, de nuit dans le brouillard sur
une autoroute à contre-sens était une BONNEidée :-(((

* maxi n'est ni déclarée ni initialisée:
-> Au mieux comportement indéfini, au pire plantage dans le Mid
* Valeurs hard-codées pour la plage des caractères spéciaux
-> Erreur flagrante de conception
* usage de GOTO
-> totalement inutile ici et même ridicule
-> Erreur d'algorithmique, erreur de programmation
-> erreur de conception, erreur de simple bon sens
* Usage du GOTO pour forcer la sortie d'une boucle FOR
-> Il n'y a même pas mots pour décrire ça :-((

Lire d'urgence:
- un manuel de de programmation structurée (un pour débutant)
- lire la documentation de VB et en particulier l'usage de
* DO .. Loop, Do While ... Loop, Exit Loop, Exit For, etc.
* la fonction replace

Pitié pour les programmeurs débutants (il y en a bcp ici) qui
ne sont pas nécessairement capables de distinguer le vrai du
faux.

Je ne veux faire aucune polémique ni entrer dans une discussion,
il n'y a la aucune attaque personnelle, c'est juste un réflexe!

--
Jean-marc
(qui referme cette page douloureuse)
Avatar
driss hanib
ne t'inquitète pas Jea marc c'est habituel..

Driss
"jean-marc" a écrit dans le message de news:
44180662$0$2135$
"X" wrote in message news:
Bonjour,

Par exemple une recherche sur la valeur, mais il y a plusieurs
possiblités à adopter en fonction surtout de la longueur de la recherche:

dim ascii as integer
dim alpha as string *1
dim i as long
'
for i = 1 to maxi
alpha = mid(chaine, i, 1)
ascii = Asc(alpha)
select case acsii
case 0 to 31: goto caractere_special
case 32 to 122 ...: goto caractere_normal
end select
next i
goto suite



NON !

Je m'abstient en général mais la, on ne peut pas laisser passer
ça :-(

C'est comme si sur un site pour jeunes conducteurs tu intervenais
pour dire que conduire à 200 KM/H, de nuit dans le brouillard sur
une autoroute à contre-sens était une BONNEidée :-(((

* maxi n'est ni déclarée ni initialisée:
-> Au mieux comportement indéfini, au pire plantage dans le Mid
* Valeurs hard-codées pour la plage des caractères spéciaux
-> Erreur flagrante de conception
* usage de GOTO
-> totalement inutile ici et même ridicule
-> Erreur d'algorithmique, erreur de programmation
-> erreur de conception, erreur de simple bon sens
* Usage du GOTO pour forcer la sortie d'une boucle FOR
-> Il n'y a même pas mots pour décrire ça :-((

Lire d'urgence:
- un manuel de de programmation structurée (un pour débutant)
- lire la documentation de VB et en particulier l'usage de
* DO .. Loop, Do While ... Loop, Exit Loop, Exit For, etc.
* la fonction replace

Pitié pour les programmeurs débutants (il y en a bcp ici) qui
ne sont pas nécessairement capables de distinguer le vrai du
faux.

Je ne veux faire aucune polémique ni entrer dans une discussion,
il n'y a la aucune attaque personnelle, c'est juste un réflexe!

--
Jean-marc
(qui referme cette page douloureuse)





Avatar
Patrice Henrio
Je pense que lorsque un anonyme génial a voulu réinventer la roue sans trop
comprendre il l'a faite carrée.
C'est uniquement mon opinion.


"driss hanib" a écrit dans le message de news:

ne t'inquitète pas Jea marc c'est habituel..

Driss
"jean-marc" a écrit dans le message de news:
44180662$0$2135$
"X" wrote in message
news:
Bonjour,

Par exemple une recherche sur la valeur, mais il y a plusieurs
possiblités à adopter en fonction surtout de la longueur de la
recherche:

dim ascii as integer
dim alpha as string *1
dim i as long
'
for i = 1 to maxi
alpha = mid(chaine, i, 1)
ascii = Asc(alpha)
select case acsii
case 0 to 31: goto caractere_special
case 32 to 122 ...: goto caractere_normal
end select
next i
goto suite



NON !

Je m'abstient en général mais la, on ne peut pas laisser passer
ça :-(

C'est comme si sur un site pour jeunes conducteurs tu intervenais
pour dire que conduire à 200 KM/H, de nuit dans le brouillard sur
une autoroute à contre-sens était une BONNEidée :-(((

* maxi n'est ni déclarée ni initialisée:
-> Au mieux comportement indéfini, au pire plantage dans le Mid
* Valeurs hard-codées pour la plage des caractères spéciaux
-> Erreur flagrante de conception
* usage de GOTO
-> totalement inutile ici et même ridicule
-> Erreur d'algorithmique, erreur de programmation
-> erreur de conception, erreur de simple bon sens
* Usage du GOTO pour forcer la sortie d'une boucle FOR
-> Il n'y a même pas mots pour décrire ça :-((

Lire d'urgence:
- un manuel de de programmation structurée (un pour débutant)
- lire la documentation de VB et en particulier l'usage de
* DO .. Loop, Do While ... Loop, Exit Loop, Exit For, etc.
* la fonction replace

Pitié pour les programmeurs débutants (il y en a bcp ici) qui
ne sont pas nécessairement capables de distinguer le vrai du
faux.

Je ne veux faire aucune polémique ni entrer dans une discussion,
il n'y a la aucune attaque personnelle, c'est juste un réflexe!

--
Jean-marc
(qui referme cette page douloureuse)









Avatar
Gloops
Patrice Henrio a écrit :
Je pense que lorsque un anonyme génial a voulu réinventer la roue sans trop
comprendre il l'a faite carrée.
C'est uniquement mon opinion.



C'est bien le sens de l'intervention de Jean-Marc, non ?
Souvent si on se donnait la peine de se documenter on ferait moins de
roues carrées et on aurait des programmes qui roulent.

C'est seulement pour monter ou descendre des escaliers, qu'il faut des
roues carrées. Donc, dans ce cas on introduit une fonction
ChangeFormeRoue(), dont la valeur de retour permet de savoir la nouvelle
forme de roue (et éventuellement d'en déduire l'ancienne).
Vraisemblablement faut-il alors une autre fonction qui permet de
connaître et modifier le pas de la roue, pour s'adapter à la taille des
marches.