1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
var
Form1: TForm1;
i,j:integer;
bi,bs:integer;
chaine:string;
chaine2:string;
mot:string;
max,posi:integer;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
listbox1.Clear; //initialisation de la listbox
i:=1;
j:=1;
bi:=1;
chaine:=trim(edit1.text); //copie dans chaine de la phrase de edit1
max:=length(chaine); //stocke logueur de la chaine
edit2.text:=inttostr(max); //affiche dans edit2 la longueur de la chaine
if chaine<>'' then
begin
for i:=1 to (max-1) do
begin
if chaine[i]<>' ' then
begin
chaine2[j]:=chaine[i]
else
if ((chaine[i]=' ') and (chaine[i+1]<>' ')) then
begin
chaine2[j]:=' ';
end;
j:=j+1;
end;
edit3.Text:=chaine2; //stocke la chaine purgée des espaces au extrémité
for i:=1 to max do
begin
if (chaine[i]=' ') then
begin
mot:=copy(chaine,bi,i); //copie le mot
bi:=i+1; //saut de l'espace pour arriver sur le premier caracrère du mot suivant
posi:=pos(' ',mot); //stock dans posi la position de l'espace sinon renvoie 0
if posi<> 0 then // si <> 0 alors
delete(mot,posi,length(mot)); // supprime tout ce qu'il y a après
listbox1.Items.Add(trim(mot)); // affiche dans la listbox le resultat
end;
end;
//pour afficher le dernier mot
j:=max;
bs:=max;
while (chaine[j]<>' ') do
begin
bi:=j;
mot:=copy(chaine,bi,max);
j:=j-1;
//showmessage(mot);
end;
listbox1.Items.Add(trim(mot));
end
else
showmessage('saisir phrase');//oblige une saisi de caractère sinon quitte
end; |
Partager