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 71
|
program trouver_mot_dans_texte_min_5_lettres;
{$APPTYPE CONSOLE}
// sortir les differents mot dans un fichier texte,
//les mettres dans un tableau pour ensuite les afficher
uses
SysUtils;
var
Tmot : array[0..4000] of string;
lettre : set of char =['a'..'z','A'..'Z','é','è','à','ï','ë','â','ô','î','ê'];
CptMot : Integer;
// trouver les mots possibles dans chaque lignes du fichier 'f'
procedure AnalyseLigne(S : string); // 'S' remplace 'Ligne' => la fonction peut etre utilisé ailleur du coup.
var
i : Integer;
motTemp : string;
begin
for i := 1 to length(s) do // parcour du string pr trouver les mots, cad la ligne
begin
if charinset(s[i],lettre) then // si != lettre ca vx dire qu'on a un mot !
motTemp:= motTemp + s[i]
else
if (MotTemp <> '' ) then // Pour éviter des mot en tant qu'espace. Pas d'element de tableau vide :)
begin
CptMot:= CptMot +1; // Compteur de mot. Permet de le placer ds le tableau !
motTemp := ''; // vider motTemp
end;
if (length(MotTemp) > 4) then
Tmot[CptMot]:= motTemp; // ajouter au tableau
end;
end;
// affichage le tableau
procedure affichageMot;
var
i:integer;
begin
for i := 0 to CptMot do
begin
writeln(Tmot[i]);
if I mod 20 = 0 then readln; // Permet de couper l'affichage des mot par groupe de 20 !
end;
end;
var
Ligne : string;
f : text;
// Debut du programme
begin
CptMot:= 0;
assignfile (f, 'mot.txt');
reset(f); // ouvrir en lecture
{*rewrite := commence par ouvrir en effacant tt
pour ecrire dedans par la suite en réecrivant *}
{* append := ouvrir en ecrite pour y ecrire a la FIN
apres *}
while not eof(f) do
begin
readln(f,Ligne);
AnalyseLigne(Ligne); // a chaque ligne, verifier les mot qui y sont
end;
CloseFile(f);
writeln('Il y a : ', cptMot, ' mot(s)');
writeln('Les mots sont : ');
affichageMot; // affichage des mots trouves
readln;
end. |
Partager