Remplacer chaine de caractère

Résolu
Also know as Messages postés 259 Date d'inscription samedi 13 décembre 2003 Statut Membre Dernière intervention 22 novembre 2010 - 21 avril 2006 à 00:40
dubois77 Messages postés 675 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 19 février 2019 - 4 déc. 2017 à 07:41
Bonjour à tous,

Voilà je souhaiterais juste pouvoir supprimer plusieurs caractères à la suite.

Je vais chercher dans la base de registre une certaine adresse, par exemple, une clé qui va contenir ceci :

C:\Documents and Settings\All Users\Bureau, et j'aimerais pouvoir enlever le "\Bureau".

Je suis avec cette ligne de code :

for i:=1 to Length(St) do
if St[i]='\Bureau' then Delete(St,i,1);

Mais malheureusement je n'arrive pas à m'en servir correctement...
En effet j'ai beaucoup de mal avec ce genre de chaine...

Donc comment lui faire comprendre que je ne voudrais pas supprimer UN caractère mais plusieurs ?

6 réponses

jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
21 avril 2006 à 07:31
salut,

une chose avec:

for i:=1 to Length(St) do

if St[i]='\Bureau' then Delete(St,i,1);

tu auras une superbe erreur de compilation : Type incompatible

en effet tu compares un types char (St[i]) avec un string ('\Bureau')

Pour tester si la chaine St contient la chaine bureau il faut utiliser
la fonction Pos() qui renvoie la position de la sous chaine dans la
chaine et 0 si elle n'y ait pas-->

if pos('\Bureau',St)<>0 then delete(st,pos('\Bureau',st),length('\Bureau'));



@+

jlen
3
merci
0