Текстовый редактор - Free Pascal
Формулировка задачи:
Листинг программы
- program AniFoxs_program;
- var txtVal,save: string;
- F: Text;
- label M1,M2;
- Begin
- Assign (F,'text.txt');
- {Rewrite (F);}
- WriteLn ('Commands:');
- WriteLn ('exit/close - for close this application');
- WriteLn ('save - for save your text');
- WriteLn ('delete - for delete you text');
- M1: ReadLn (txtVal);
- {Закрытие начало}
- If (txtVal = 'exit') OR (txtVal = 'close') Then
- Begin
- M2: WriteLn ('You want save your text? (Y/N)');
- ReadLn (save);
- If (save = 'Y') OR (save = 'y') then Close(F)
- Else If (save = 'n') OR (save = 'N') then WriteLn
- Else
- Begin
- WriteLn('You should write Y or N');
- GoTo M2;
- exit;
- End;
- Exit;
- End
- {Закрытие конец}
- {Сейв начало}
- Else If txtVal = 'save' then
- Begin
- Close(F);
- Assign (F,'text.txt');
- GoTo M1;
- End
- {Сейв конец}
- Else If txtVal = 'delete' then Rewrite(F)
- Else
- Begin
- WriteLn(F,txtVal);
- GoTo M1;
- End;
- End.
Решение задачи: «Текстовый редактор»
textual
Листинг программы
- program AniFoxs_program;
- uses crt;
- const csize=10000;
- type tarray=array [1..csize] of string;
- procedure mycommand;
- begin
- writeLn ('Commands:');
- writeLn ('exit - for close this application');
- writeLn ('save - for save your text');
- writeLn ('delete - for delete you text');
- end;
- procedure savetxt(var amas:tarray);
- var f:text;i:integer;
- begin
- assign(f,'text.txt');
- rewrite(f);
- i:=1;
- while (amas[i]<>'save') and (amas[i]<>'exit') do begin
- writeln(f,amas[i]);
- inc(i);
- end;
- close(f);
- end;
- var s:string;mas:tarray;
- ch:char;i:integer;
- begin
- clrscr;
- mycommand;
- for i:=1 to csize do begin
- readln(mas[i]);
- if mas[i]='exit' then
- break;
- if mas[i]='delete' then begin
- clrscr;
- mycommand;
- end;
- if mas[i]='save' then savetxt(mas);
- end;
- writeln('save before exiting Y/N ?');
- readln(ch);
- if (ch='y') or (ch='Y') then savetxt(mas);
- end.
Объяснение кода листинга программы
- Объявлены переменные:
- s: строка;
- mas: массив типа tarray;
- ch: символ;
- i: целое число;
- Запущена функция mycommand, которая выводит список команд.
- Запущен цикл, который считывает строки из массива mas и выполняет следующие действия:
- Если строка равна 'exit', то цикл прерывается.
- Если строка равна 'delete', то экран очищается и выводится список команд.
- Если строка равна 'save', то вызывается функция savetxt.
- Запущен цикл, который считывает строки из массива mas и выполняет следующие действия:
- Если строка не равна 'save' и 'exit', то она записывается в файл 'text.txt'.
- Если строка равна 'save', то вызывается функция savetxt.
- Выводится вопрос о сохранении изменений перед выходом.
- Считывается ответ пользователя и сохраняется в переменной ch.
- Если ch равен 'y' или 'Y', то вызывается функция savetxt.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д