bonjour quelqu'un pourrait il me trouver la solution du probleme suivant:
soit un fichier de type text, on demande de concevoir un algorithme qui modifie le fichier de la maniere suivante:
-tout element marquant la fin d'une phrase sera remplacé par deux sauts à la ligne;
-tout element separateur sera remplacé par un saut de ligne.
voila si quelqu'un a la solution se serait sympa pour jeudi si possible merci bcp :)
Salut tout le monde !
Voila je sais que c'est un peu tard mai je me suis amusé à faire ce programme donc je vais y mettre le code source.
Donc ce programme peu etre utile pour améliorer la lisibilité d'un texte, mais on peu tomber sur plusieurs problèmes : par exemple quand dans un texte il y a une adresse web ex : www.moteurprog.com et bien il prend le "." comme de la ponctuation et passe a la ligne... problème non règler dans mon algorythme (j'ai la flemme lol).
donc déjà vous pourez trouver le programme fini a cette adresse : cliquez ici
les fichiers .pas et .dpr a cette adresse :Cliquez-ici
Bien sur que ce soit pour executer le programme ou pour voir la source, il faut déziper tous les fichiers dan un meme dossier si nn sa marche pas ;)
bon voila le source : ( je vous dit juste que le prog n'est pas optimiser, on aurai pu eviter plein de lignes mais trop la fleme lol)
var a : textfile;
i, p1, p2, p3, p4 : integer;
s, deb : string;
procedure TForm1.Button1Click(Sender: TObject);
begin
memo1.Clear;
assignfile(a, 'essai.txt');
reset(a);
while not EOF(a) do begin
readln(a, s);
p1 := pos('.', s);
p2 := pos(';', s);
p3 := pos('!', s);
p4 := pos('?', s);
if (p1 <>0) or (p2 <> 0) or (p3 <> 0) or(p4 <> 0) then begin
while (p1 <>0) or (p2 <> 0) or (p3 <> 0) or(p4 <> 0) do begin
p1 := pos('.', s);
p2 := pos(';', s);
p3 := pos('!', s);
p4 := pos('?', s);
if p1 <> 0 then begin
if (p1<p2) or (p1<p3) or (p1<p4) then begin
deb := copy(s, 0, p1);
s := copy(s, p1+1, length(s));
memo1.Lines.Add('');
//memo1.Lines.Add('');
memo1.Lines.Add(deb);
end else if (p2 = 0) and (p3 = 0) and (p4 = 0) then begin
deb := copy(s, 0, p1);
s := copy(s, p1+1, length(s));
memo1.Lines.Add('');
//memo1.Lines.Add('');
memo1.Lines.Add(deb);
end;
end;
if p2 <> 0 then begin
if (p2<p1) or (p2<p3) or (p2<p4) then begin
deb := copy(s, 0, p2);
s := copy(s, p2+1, length(s));
memo1.Lines.Add('');
//memo1.Lines.Add('');
memo1.Lines.Add(deb);
end else if (p2 = 0) and (p3 = 0) and (p4 = 0) then begin
deb := copy(s, 0, p1);
s := copy(s, p1+1, length(s));
memo1.Lines.Add('');
//memo1.Lines.Add('');
memo1.Lines.Add(deb);
end;
end;
if p3 <> 0 then begin
if (p3<p1) or (p3<p2) or (p3<p4) then begin
deb := copy(s, 0, p3);
s := copy(s, p3+1, length(s));
memo1.Lines.Add('');
//memo1.Lines.Add('');
memo1.Lines.Add(deb);
end else if (p2 = 0) and (p3 = 0) and (p4 = 0) then begin
deb := copy(s, 0, p1);
s := copy(s, p1+1, length(s));
memo1.Lines.Add('');
//memo1.Lines.Add('');
memo1.Lines.Add(deb);
end;
end;
if p4 <> 0 then begin
if (p4<p1) or (p4<p2) or (p1<p3) then begin
deb := copy(s, 0, p4);
s := copy(s, p4+1, length(s));
memo1.Lines.Add('');
//memo1.Lines.Add('');
memo1.Lines.Add(deb);
end else if (p2 = 0) and (p3 = 0) and (p4 = 0) then begin
deb := copy(s, 0, p1);
s := copy(s, p1+1, length(s));
memo1.Lines.Add('');
//memo1.Lines.Add('');
memo1.Lines.Add(deb);
end;
end;
end;
end
else
begin
memo1.Lines.Add(s)
end;
end;
Closefile(a);
end;
voila je croi que j'ai tout dit ^^ a bientôt
__________________________
Blademan1