Как только встречается слово Compiling, нужно передать в основную программу переменную Nstr - Free Pascal
Формулировка задачи:
Добрый день!
Помогите пожалуйста с программой. Есть функция, которая считывает из файла строки. Как только встречается слово Compiling, нужно передать в основную программу переменную Nstr. Подскажите, пожалуйста, как это сделать
Procedure Search(var str0:string; Nstr:integer); var f:text; prov, str:string; j:integer; begin assign(f,str0); reset(f); while not Eof(f) do begin readln(f,str); Nstr:=Nstr+1; prov:=''; for j:=1 to length(str) do begin prov:=prov+str[j]; if prov='Compiling' then ?????? <-----что делать здесь? end; end; end;
Решение задачи: «Как только встречается слово Compiling, нужно передать в основную программу переменную Nstr»
textual
Листинг программы
Procedure Search(var str0:string; var Nstr:integer);
var
f:text;
prov, str:string;
j:integer;
begin
assign(f,str0);
reset(f);
while not Eof(f) do
begin
readln(f,str);
Nstr:=Nstr+1;
prov:='';
for j:=1 to length(str) do
begin
prov:=prov+str[j];
if prov='Compiling' then Exit;
end;
end;
end;
Procedure Output(var str0:string);
var
f:text;
x,y,Nstr,i,j:integer;
str,str1,str2:string;
flag1,flag2:boolean;
begin
initgraph(x, y,' ');
assign(f,str0);
reset(f);
Nstr:=1;
Search(str0, Nstr);
j:=0;
while not Eof(f) do
begin
j:=j+1;
if j>=Nstr then
begin
readln(f,str);
flag1:=false;
flag2:=false;
for i:=1 to length(str) do
begin
if str[i]='(' then
flag1:=true;
if (str[i+1]=')') or (str[i+1]=',') then
flag2:=true;
if flag2=true then
begin
str1:=str1 + ' ';
if str[i]='"' then
str2:=str2+str[i+1];
flag1:=false;
flag2:=false;
end;
if flag1=true then
str1:=str1 + str[i+1];
end;
end;
end;
end;
Объяснение кода листинга программы
- Объявлены две процедуры: Search и Output.
- В процедуре Search используется переменная Nstr для подсчета количества строк в файле.
- В цикле while считывается каждая строка из файла до тех пор, пока не достигнется конец файла.
- Для каждой строки выполняется поиск слова
Compiling. Если это слово найдено, то процедура завершается. - В процедуре Output используется переменная Nstr, которая инициализируется значением 1.
- Вызывается процедура Search для поиска строки с словом
Compiling. - Если в строке найдено слово
(и закрывающая скобка ')', то начинается поиск следующего слова. - Если в строке найдено слово
,, то предыдущее найденное слово считается именем и добавляется в результат. - Если в строке найдено слово ```, то следующее слово считается продолжением предыдущего имени и добавляется в результат.
- Результат выводится на экран.