Составить программу, которая создаёт файл,обеспечивает ввод данных,вывод данных,поиск по любому критерию. Каждая компонента содержит следующую информацию о документе: номер строки документа (тип integer);номер строки (тип string) — Pascal(Паскаль)

uses crt;
type doc=record
         nom:integer;
         text:string;
         end;
var z:doc;
    w:char;
    f:file;
    i,n,k,ns:integer;
    st:string;
begin
clrscr;
write('Количество строк n=');
readln(n);
assign(f,'doc.dat');
rewrite(f,1);
writeln('Введите данные о документе');
for i:=1 to n do
 begin
  z.nom:=i;
  writeln('Строка ',i,':');
  readln(z.text);
  blockwrite(f,z.nom,sizeof(z.nom));
  blockwrite(f,z.text,sizeof(z.text));
 end;
close(f);
clrscr;
repeat
clrscr;
writeln('Выберите действие:');
writeln('1-вывод данных');
writeln('2-поиск по номеру строки');
writeln('3-поиск по содержанию строки');
writeln('другое-выход');
readln(w);
case w of
'1':begin
    reset(f,1);
    writeln('Содержание файла:');
    for i:=0 to n-1 do
     begin
      blockread(f,z.nom,sizeof(z.nom));
      blockread(f,z.text,sizeof(z.text));
      writeln(z.nom:2,'  ',z.text);
     end;
    close(f);
    write('Press Enter...');
    readln
    end;
'2':begin
    reset(f,1);
    write('Введите номер строки ns=');
    readln(ns);
    if(ns<1)or(ns>filesize(f)) then
     begin
      writeln('Такой страницы нет!');
      write('Press Enter...');
      readln;
      close(f);
     end
    else
     begin
      blockread(f,z.nom,sizeof(z.nom));
      blockread(f,z.text,sizeof(z.text));
      writeln(z.nom:2,'  ',z.text);
      write('Press Enter...');
      readln;
      close(f);
     end;
    end;
'3':begin
    reset(f,1);
    writeln('Введите содержание строки для поиска:');
    readln(st);
    k:=0;
    while not eof(f) do
     begin
      blockread(f,z.nom,sizeof(z.nom));
      blockread(f,z.text,sizeof(z.text));
      if z.text=st then
        begin
         writeln(z.nom:2,'  ',z.text);
         k:=1;
        end;
     end;
     if k=0 then writeln('Такой строки нет!');
     write('Press Enter...');
     readln;
     close(f);
   end;
else exit;
end;
until not(w in ['1'..'3']);
end.

Leave a Comment

− 8 = 2