Практика программирования (Бейсик, Си, Паскаль)



         

Основные типы файлов в Паскале - часть 4


Программа 7_04.pas выполняет в цикле вывод 10-ти порций данных, заготавливаемых в массиве buf (размер каждой порции — 15 байт). Обратите внимание на то, каким образом в этом массиве выделяются участки памяти для хранения разнотипных данных. Нетипизированный указатель р допускает присваивание адреса любого типа, а его значение может быть присвоено любому типизированному указателю. Для текста "строка", содержащего шесть символов, в массиве buf отводится семь байт с учетом указателя длины, предшествующего строковому значению.

Программа 7_04.pas

program bin_file;

uses Crt;

var

buf:array [1..15] of byte;

f1:file;

р:pointer;

рs:^string;

pk:^integer;

pr:^rеа1;

j:integer;

begin clrscr;

p:=@buf[l];

ps:=p;

p:=@buf[8];

pk:=p;

p:=@buf[10J;

pr:=p;

assign(f1,'pas_bin') ;

rewrite(fl,15);

ps^:='Строка';

for j:=1 to 10 do begin

pk^:=j;

pr^:=sqrt(j) ;

blockwrite(f1,buf,1);

writeln (рs^,р^: 4,рг^ : 10: 4) ;

end;

close(f1);

writeln;

reset(f1,15);

for j:=9 downto 0 do begin

seek(f1,j);

blockread(f1,buf,1);

writeln(рs^,рk^:4,pr^:10:4);

end;

close(f1);

readln;

end.




Содержание  Назад  Вперед