Работа с файлом - переменная в коде не меняет своего значения - Free Pascal
Формулировка задачи:
Добрый день!
Помогите пожалуйста с программой. В данной процедуре, программа открывает файл для чтения(в файле написан код какой-либо программы). Flag=false. Как только в строке появляется слово "begin" программа присваивает flag=true. Но сейчас программа просто проходит мимо. В результате в программе flag всегда равен false. Помогите пожалуйста исправить это.
Листинг программы
- Procedure Search(var s1,str:string);
- var
- f: text;
- s,g,s2: string;
- x,y,j,k,i: integer;
- flag: boolean;
- begin
- flag:=false;
- assign(f,str);
- reset(f);
- s1:='';
- while not eof(f) do begin
- readln(f,s);
- while (length(s)>0) and (s[1]=' ') do delete(s,1,1);
- g:='begin ';
- if pos(g,s)=0 then flag:=true; <------------вот здесь программа работает неправильно
- if flag=true then
- begin
- k:=length(s);
- for i:=1 to k do
- begin
- if ((s[i]=':') and (s[i+1]='=')) then
- begin
- for j:=length(s1)-length(s2)+1 downto 1 do
- if copy(s1,i,length(s2))=s2 then delete(s1,i,length(s2));
- s1:=s1 + s2 + ' ';
- s2:='';
- end
- else
- begin
- if s[i]=';' then
- s2:=''
- else
- s2:=s2 + s[i];
- end;
- end;
- end;
- end;
- end;
Решение задачи: «Работа с файлом - переменная в коде не меняет своего значения»
textual
Листинг программы
- uses SysUtils, Process;
- var
- proc : TProcess;
- path, outfile : string;
- begin
- path := 'D:\__Volvo\Programs\pascal\t215.pp';
- outfile := ChangeFileExt(path, '.txt');
- proc := TProcess.Create(nil);
- // пути к исходнику и к компилятору подправь
- proc.CommandLine := 'D:\FPC\2.6.4\bin\i386-win32\fpc.exe -b ' + path +
- ' -Fe' + outfile;
- proc.Options := proc.Options + [poWaitOnExit];
- proc.Execute;
- proc.Free;
- end.
Объяснение кода листинга программы
- Указываются используемые модули: SysUtils, Process.
- Объявляются переменные: a. proc — объект типа TProcess, который представляет процесс; b. path — строка, содержащая путь к исходному файлу; c. outfile — строка, содержащая путь к файлу вывода.
- Задаются начальные значения переменных: a. path := 'D:__Volvo\Programs\pascal\t215.pp'; b. outfile := ChangeFileExt(path, '.txt');
- Создается объект типа TProcess: a. proc := TProcess.Create(nil);
- Формируется строка для команды: a. proc.CommandLine := 'D:\FPC\2.6.4\bin\i386-win32\fpc.exe -b ' + path + ' -Fe' + outfile;
- Добавляется опция для ожидания завершения процесса: a. proc.Options := proc.Options + [poWaitOnExit];
- Запускается процесс: a. proc.Execute;
- Освобождается память, занятая объектом процесса: a. proc.Free;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д