Задание: В текстовом файле отсортировать строки по возрастанию их длин.
program S2_Z8;
type ft=text; mas=array[1..100] of string;
var f1:ft;k,i,j:integer;s:string;A:mas;
procedure sozd(var f:ft;n:integer);
var i:integer; s:string;
begin assign(f,'c:\1.txt');rewrite (f);
for i:=1 to n do
begin writeln('введите ',i,'-ю строку');readln(s);
writeln(f,s);
end; close(f);
end;
procedure w(var f:ft);
var s:string;
begin writeln('измененный фаил будет выглядеть так:');
reset(f);
while not eof(f) do begin readln(f,s); writeln(s)
end; close(f);
end;
begin writeln('введите кол-во строк в файле'); readln(k);
sozd(f1,k);
reset(f1);
while not eof(f1) do
begin for i:=1 to k do begin readln(f1,s); A[i]:=s;end;end;
for j:=1 to k do
for i:=1 to k do
if length(a[i])a[i-1] then begin
s:=a[i];a[i]:=a[i-1];a[i-1]:=s;end;
k:=0;
for i:=1 to n do
if a[i]=0 then begin s:=a[i];a[i]:=a[n-k];a[n-k]:=s;k:=k+1;end;
for i:=1 to n do write(buf,a[i]);
close(buf);close(f);
erase(f);
rename(buf,'c:\f.int');
end;
procedure w(var f:fi);
var a:integer;
begin
reset(f);
while not eof(f) do begin
read(f,a);write(a:4);end;
end;
begin
writeln('Задайте кол-во компонентов файла');readln(n);
vvod(n,f1);
sort(n,f1);
w(f1);
write;
end.
|