Написать программу, содержащую функцию getLine(Name,k) строкового типа, возвращающую к-ю строку текстового файла с именем Name (строки нумеруются от 0). Если файл не существует или не содержит каждой строки, то функция возвращает пустую строку. С помощью этой функции вывести пять строк данного файла с указанными номерами — Pascal(Паскаль)

uses crt;
function getLine(name:string;k:integer):string;
var f:text;
    a:string;
    i:integer;
begin
assign(f,name);
{$I-} reset(f);  {$I+}
if IOResult <> 0 then
 begin
  getLine:='';
  exit;
 end;
i:=0;
while not eof(f) do
 begin
  i:=i+1;
  readln(f,a);
  if i=k then
   begin
     getLine:=a;
     break;
   end;
 end;
if i<k then getLine:='';
close(f);
end;
var f:text;
    i,k:integer;
    a,s:string;
begin
clrscr;
assign(f,'filef.txt');
rewrite(f);
writeln('Введите в файл строки, окончание ввода строка 00:');
repeat
readln(a);
writeln(f,a);
until a='00';
clrscr;
close(f);
for i:=1 to 5 do
 begin
  write('Имя файла: ');
  readln(s);
  s:=s+'.txt';
  repeat
  write('Номер строки от 1 k=');
  readln(k);
  until k>0;
  if getLine(s,k)='' then
  writeln('Файл не существует, либо в нем нет строки № ',k)
  else writeln('Строка номер ',k,'= ',getLine(s,k));
 end;
writeln;
write('Работа программы завершена, нажмите Enter для выхода.');
readln
end.

Leave a Comment

9 + 1 =