Incompatibilités Char et String

Also know as Messages postés 259 Date d'inscription samedi 13 décembre 2003 Statut Membre Dernière intervention 22 novembre 2010 - 4 déc. 2005 à 19:13
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 - 5 déc. 2005 à 03:42
J'ai un petit problème quand je souhaites compiler cela :



procedure TForm1.Button1Click(Sender: TObject);

var

St:String;

i, i2: integer;

begin

for I2 := 1 to ParamCount do St:=ParamStr(I2);

if Copy(St,0,6)='xyz://' then //Copy renvoie une sous-chaîne contenant Count caractères (7) ou éléments en partant de St[0]

begin

ShowMessage('L''url contient bien le terme "xyz://"');

for i:=1 to Length(St) do

if St[i]='/' then St[i]:=''; //Remplace le '/' par le '' | L'ERREUR EST ICI |

Edit1.Text:=Copy(St,7,Length(St));

end else

ShowMessage('L''url ne contient pas le terme "xyz://"');

end;



Voilà ce qu'il me dit :



Unit1.pas(45): Types incompatibles : 'Char' et 'String'



Donc pouvez-vous m'aider à convertir cela ?



Ou plus précisément, je cherche le moyen de supprimer le dernier caractère.

Car celuic-i me rajoutes tout le temps le caractère "/" à la fin de
l'adresse alors qu'elle n'y est pas d'origine, donc je cherche à
supprimmer le dernier caractère.

Car si le lien contient plusieurs / style : http://www.sitealpha.com/tests/ici/oui/la

ben avec ma manière il ma tout me supprimer, donc je chercher le moyen de supprimer juste le dernier caractère, s'il vous plait.



Merci d'avance

3 réponses

Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
4 déc. 2005 à 19:34
Salut
la solution est :
if St[i]='/' then St[i]:=' '; //Remplace le '/' par le '' | L'ERREUR EST ICI |
c'est presque la même sauf qu'il y a un espace entre les ''
0
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
4 déc. 2005 à 20:38
salut,

si tu veux supprimer le caractere plutot que remplacer par un espace utilise la fonction delete:

while pos('/',st)<>0 do delete(st, pos('/',st),1;

si c'est uniquement le dernier caractere

fait

if st[length(st)]='/' then delete(st,length(st),1);



@+

jlen
0
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
5 déc. 2005 à 03:42
procedure TForm1.Button1Click(Sender: TObject);

var

St : String;

i : integer;

begin

st := ParamStr(ParamCount);

if pos('xyz://',St) = 1 then begin

ShowMessage('L''url contient bien le terme "xyz://"');

i := Length(St);

if st[i] = '/' then dec(i);

Edit1.Text := Copy(St, 7, i);

end else

ShowMessage('L''url ne contient pas le terme "xyz://"');

end;


______________________________________________
try
WhiteNight := Gloup(Kawa);
exept
on GloupOverFlow do GoToWaterClosed;
end;
0
Rejoignez-nous