program FileSort;
UsesCrt;
var
f:file of integer;
x,y: integer;
i,j; Longint;
begin
{$I-}
Assign(f, `Sort.Dat`);
Reset (f);
{I+}
if IOResult<>0 then
begin
writeln(`файлни очишда хатолик`);
Halt (1);
еnd;
ClrScr;
Writeln (`Бошлангич файл`);
for i:=1 to FileSize (f) do
begin
Read (f,x);
Write (x:8)
end;
Writeln;
Close(f);
{------------------------------------------------}
Reset (f)
for i:=FileSize (f)-1 downto 1 do
{Навбатдаги максимал элементнинг i- хонага «ќалќиб» чиќиши}
for j:=0 to i-1 do
begin
Seek (f,j);
Read (f,x,y);
if x>y then
begin
Seek (f,j);
Write (f,y,x);
end;
end;
Close(f);
{----------------------------------------------}
Reset(f);
Writeln(`Сараланган файл:`);
for i:=1 to FileSize (f) do
begin
Read (f,x);
Write (x:8)
end;
Close (f);
end.
Турдошлаштирилган файлнинг тури «ойна» («шаблон») эканлигини эслатамиз, уни, элементларидан фойдаланиш мумкин бўлиши учун, физик файлга «ќўямиз». Агар шундай мумкин бўлса, битта «ойна»дан фойдаланиб файл яратиш, бошќа «ойна»ни ишлатиб, уни ўќиш мумкинми?- деган савол туѓилади. Ћаќиќатда бундай ќилиш мумкин. Масалан, ќуйидаги мисолда Char туридаги файлга аввал бир ќатор белгилар езилади, кейин эса шу физик файлнинг ўзи Byte туридаги файл каби очилади ва натижада унга ёзилган белгиларнинг ASCII кодлари босмага чиќарилади:
program CharToByte;
Uses Crt;
var
FC: file of Char;
FB: file of Byte;
B : Byte;
begin
ClrScr;
Assign (FC,`Test.Dat`);
Rewrite(FC);48
Do'stlaringiz bilan baham: |