
- •Приклад програми роботи з файлами різних типів
- •Im:string[10];
- •Var baza:file of zap;
- •I,j,k:integer;
- •Im:string[10];
- •Var baza:file of zap;
- •I,j:integer;
- •Var baza,kopiia:file;
- •Im:string[10];
- •Var kopiia:file of zap;
- •Val(copy(str,1,p1-1),poch,p1);
- •Inc(poch);
- •If (ind_rob) and (vidp in ['1','n','2','d','3','r','4','V'])
- •Текст програми для визначення коду клавіші клавіатури
- •0 І ще якесь число - наприклад, клавіші PgDn, Del, End тощо.}
- •Var vidp:char;
Inc(poch);
end; {виведення}
end; {with zapys do}
close(kopiia);
end; {redahuvannia}
{****************************************************************}
{* головна програма - визначає послідовність роботи з файлами *}
{* (у ній використовується текстовий файл, *}
{* який може або створюватися новий, або *}
{* доповнюватися інформацією) *}
{****************************************************************}
begin
clrscr;
assign(out,'c:\tp\rez.txt'); {зв’язування імені зовнішнього файла з файловою змінною}
writeln('Prodowzhyty protokol ''p'' chy pochaty novyi (bud-yaka klavisha)?');
readln(vidp);
{відкриття файлу out для запису протоколу роботи головної програми}
if vidp='p'
then append(out) {відкриття текстового файлу для розширення}
else rewrite(out); {відкриття нового файлу чи знищення і
відкриття існуючого раніше файлу}
writeln(out);
writeln(out,'*** Novyi seans roboty z prohramoiu ***');
GetDate(a,b,c,d); {дані із DOS}
writeln(' Date: ',c,'.',b,'.',a);
writeln(out,' Date: ',c,'.',b,'.',a);
GetTime(a,b,c,d);
writeln(' Time: ',a,'.',b);
writeln(out,' Time: ',a,'.',b);
{визначення послідовності роботи з файлом-базою даних}
ind_rob:=true; {файл-базу даних ще не вказано}
vidp:=#13;
while vidp<>#27 do {працює, доки не буде натиснено ESC}
begin
writeln('Vkazhit diiu:');
writeln(' 1,n - stvoryty novu bazu danykh;');
writeln(' 2,d - dopovnyty bazu danykh;');
writeln(' 3,r - redahuvaty bazy danykh;');
writeln(' 4,v - vyvodyty informatsiiu z bazy danykh;');
writeln(' 5,i - vybraty inshu bazu danykh;');
writeln(' ESC - zakinchyty robotu.');
vidp:=readkey;write(vidp);readln;
if vidp in ['1','n'] then ind_rob:=true;
If (ind_rob) and (vidp in ['1','n','2','d','3','r','4','V'])
then
begin
writeln('zadaite imia faila-bazy danykh na dysku (napryklad, c:\tp\aaa)');
readln(imfil);writeln(out,'Robota z failom: ',imfil);
ind_rob:=false;
end;
writeln(out,'Vkazano diiu: ',vidp);
case vidp of
'1','n': stvor_dopovn(imfil,true);
'2','d': stvor_dopovn(imfil,false);
'3','r': begin
imfil_c:=imfil+'_c';
kopiiuvannia(imfil,imfil_c);
redahuvannia(imfil_c);
kopiiuvannia(imfil_c,imfil)
end;
'4','v': vyvid(imfil);
'5','i': ind_rob:=true;
#27: begin
GetTime(a,b,c,d);
writeln(' Time: ',a,'.',b);
writeln(out,' Time: ',a,'.',b);
writeln('Seans roboty z prohramoiu zakincheno');
writeln(out,'Seans roboty z prohramoiu zakincheno');
end
else writeln('nepravylna vidpovid');
end; {case vidp}
end; {while vidp<>#27}
close(out);
readln;
end.