Текстовый редактор - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д