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 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
|
const L1:string = '***';
L2:string = '* *';
L3:string = '* ********************************';
L4:string = '* *';
L5:string= '**********************************';
Var Nom_Fichier, ligne: String;
nb_lignes, nb_car, I, numeroligne:integer;
Fichier_Source : Text;
Begin
Begin
Writeln(' Nom du fichier à ouvrir ? ');
Readln(Nom_Fichier);
Assign(Fichier_Source,Nom_Fichier);
{$i-}
reset(Fichier_Source);
{$i+}
If IOresult<>0 then
Begin
writeln('Le fichier ', Nom_Fichier, ' n''a pas été trouvé ');
readln;
Halt;
end;
i:=0;
While not eof(Fichier_Source) do(*compter le nombre de ligne*)
Begin
Readln(Fichier_Source);
i:=i+1;
End; (* lecture fichier *)
Nb_Lignes := i;
(* Nb_Lignes *)
If nb_lignes < 4 then write('erreur')
else if nb_lignes > 3 then ;
numeroligne:=0;
repeat numeroligne:=numeroligne + 1 until numeroligne = nb_lignes; (*traiter les lignes une par une*)
begin
while not eoln(fichier_source) do
(*boucle*)
begin
read(fichier_source,ligne);
Inc(NumeroLigne);
nb_car:=length(ligne);
end;
nb_car:=length(ligne);
(*nombre de caractère nb_car*)
If numeroligne = 1 then (*traitement de la 1ère ligne*)
Begin
If nb_car + length(L1) < length(ligne) then Insert(ligne,L1,1) (*cas s'il un effacement n'est pas necessaire*)
else;
begin
delete(ligne,1,length(L1));
insert(ligne,L1,1);
end;
end;
readln (fichier_source);(*passage à la ligne suivante*)
For numeroligne := 2 to nb_lignes - 1 do
begin
If nb_car + length(L2) < length(ligne) then Insert(ligne,L2,1)
else;
begin
delete(ligne,1,length(L2));
insert(ligne,L3,1);
end;
end;
readln (fichier_source);
If numeroligne = nb_lignes - 2 then
Begin
If nb_car + length(L3) < length(ligne) then Insert(ligne,L3,1)
else;
begin
delete(ligne,1,length(L3));
insert (ligne,L3,1);
end;
end;
readln (fichier_source);
If numeroligne = nb_lignes - 1 then
begin
If nb_car + length(L4) < length(ligne) then Insert(ligne,L4,1)
else;
begin
delete(ligne,1,length(L4));
insert(ligne,L4,1);
end;
end;
readln (fichier_source);
If numeroligne = nb_lignes then
begin
If nb_car + length(L5) < length(ligne) then Insert(ligne,L5,1)
else;
begin
delete(ligne,1,length(L5));
insert(ligne,L5,1);
end;
end;
end;
end;
Write(fichier_source);(*afficher le fichier*)
end. |