Создание текстового редактора в Turbo Pascal
Создание текстового редактора в Turbo Pascal
Министерство энергетики РФ
Уфимский Энергетический Колледж
Специальность 2202
Курсовая работа
по Основам алгоритмизации и программирования
на тему “Создание текстового редактора”
Выполнил: студент группы 2 – АС – 3 ____________ Тимофеев Т.П.
Проверил:
____________ Ганиев А.Э.
Уфа – 2001г.
Содержание
1. Задание ……………………………………………………… стр. 3
2. Описание программы ………………………………………. стр. 4
3. Листинг ……………………………………………………… стр. 5
1. Исходный текст программы .…………………………. стр. 5
2. Текст модуля ……………….………………………….. стр.10
4. Заключение ………………………………………………….. стр.18
5. Список использованной литературы ……………………… стр.19
Задание.
Создать программу, обеспечивающую:
1. Cоздание файлов.
2. Переименование файлов.
3. Удаление файлов.
4. Копирование файла в другой файл.
5. Открытие файла для просмотра.
Программа должна быть написана на Turbo Pascal в текстовом режиме с
использованием любых модулей, которые необходимы для её реализации
(допускаются также модули пользователя).
Описание программы.
Timofeev Word v.1.0 – это программа для работы с текстом. С её
помощью можно создавать, удалять, переименовывать, открывать, копировать
файлы друг в друга. Конечно, всё это можно проделать и в MS-DOS, но
преимущество этой программы в том, что все эти команды тщательно спрятаны
под красивым и дружественным интерфейсом моей программы.
Так как в программе Timofeev Word v.1.0 много процедур, я создал
собственный модуль Tim.tpu, куда их (процедуры) и отправил.
Процедуры:
1. Table – рисует оболочку программы.
2. Enter_Sandman – происходит проигрывание музыки на песню группы Metallica
- “Enter Sandman”. Я не стал делать так, чтобы при нажатии какой-либо
клавиши она прекращала играть, потому что для меня (не знаю как для
других) это свято.
3. Menu – эта процедура вызывает меню, где содержится информация о
программе и помощь (если её так можно назвать).
4. Keys – процедура, считывающая код нажатой клавиши.
В этой программе, конечно много недоработок, но я надеюсь, что вскоре
появятся дополненные версии 1.2, 1.3, 2.0,2.1,……, n.m.
Эта программа может использоваться в о-о-о-о-о-очень маленьких
офисах, которые не имеют возможности приобрести качественный лицензионный
продукт, к примеру Microsoft Office’9x, ’2000 (если кто-то имеет на примете
такой офис, я с удовольствием продам, за символическую цену, свой
программный продукт). Также программа может использоваться для обучения
детей в детских садах работе на персональных компьютерах. И, наконец, ей
могут воспользоваться студенты I курса для сдачи её как Курсовой работы на
следующем курсе.
Листинг.
Исходный текст программы.
Program Redaktor;
Uses Crt,Tim; {использовать модули Crt и Tim}
Label b; {метка}
Var {тело}
Programname,Cmdline:string;
nn,i,x,y:integer;
f1,f1_new:text;
Name,New_name:string[12];
txt,text:string;
ch:char;
begin
i:=1;
textbackground(red);
clrscr;
textcolor(yellow);
gotoxy(22,10);
writeln('Текстовый процессор Timofeev Word');
gotoxy(22,11);
writeln(' Версия 1.0 (2001 год)');
gotoxy(40,15);
writeln('Составил Тимофеев Тимур (2-АС-3)');
textcolor(green);
gotoxy(40,16);
writeln('Все права защищены.');
gotoxy(40,17);
writeln('Незаконное копирование');
gotoxy(40,18);
writeln('или подделка без согласия автора');
gotoxy(40,19);
writeln('преследуется по понятиям !!!');
delay(5000);
textcolor(yellow);
table;
gotoxy(2,21);
write('Введите имя:');
readln(name);
assign(f1,name);
rewrite(f1);
gotoxy(2,21);
write('Вводите текст !!! ');
gotoxy(1,2);
repeat
write(chr(179),':>');
readln(txt);
writeln(f1,txt);
until txt='';
close(f1);
gotoxy(2,21);
writeln('Ввод окончен, нажмите чего-нибудь ...');
repeat
readkey;
keys(nn);
case nn of {определяет нажатие функциональных клавиш}
59:menu; {F1}
60:begin {F2}
table;
gotoxy(2,21);
write(' ');
gotoxy(2,21);
write('Введите имя:');
readln(name);
assign(f1,name);
rewrite(f1);
gotoxy(2,21);
write('Вводите текст !!! ');
gotoxy(1,2);
repeat
write(chr(179),':>');
readln(txt);
writeln(f1,txt);
until txt='';
close(f1);
gotoxy(2,21);
writeln('Ввод окончен, нажмите чего-нибудь ...');
end;
61:begin {F3}
gotoxy(2,21);
write('Введите имя файла, в который копир-я файл ',name,'->');
readln(new_name);
reset(f1);
assign(f1_new,new_name);
append(f1_new);
while not eof(f1) do
begin
readln(f1,txt);
writeln(f1_new,txt);
end;
close(f1);
close(f1_new);
gotoxy(2,21);
writeln('Файл ',name,' скопирован в ',new_name,' нажмите
чего-нибудь ...');
end;
62:begin {F4}
gotoxy(2,21);
write(' ');
gotoxy(2,21);
write('Введите новое имя файла:');
readln(new_name);
assign(f1,name);
rename(f1,new_name);
gotoxy(2,21);
writeln('Файл ',name,' перименован в ',new_name,' нажмите
чего-нибудь ... ');
end;
63:begin {F5}
erase(f1);
gotoxy(2,21);
writeln('Файл ',name,' удалён с диска, нажмите чего-нибудь ...');
end;
64:begin {F6}
{$I-}
repeat
gotoxy(2,21);
write('Введите имя файла для считывания текста ->');
readln(name);
assign(f1,name);
reset(f1);
if ioresult<>0 then
begin
gotoxy(2,21);
writeln('Файл не найден ... ');
close(f1);
end;
until ioresult=0;
{$I+}
table;
gotoxy(1,2);
while not eof(f1) do
begin
readln(f1,txt);
writeln(chr(179),txt);
end;
close(f1);
gotoxy(2,21);
write('Файл считан, нажмите чего-нибудь ... ');
end;
68:goto b; {F10} {Происходит выход на метку}
end;
until i1 then begin
GoToXY(x,y+punkt-1);
write(menu[punkt]);
punkt:=punkt-1;
TextAttr:=SEl;
GoToXY(x,y+punkt-1);
write(menu[punkt]);
TextAttr:=NORM;
end;
end;
end
else
if ch=chr(13) then begin { нажата клавиша }
case punkt of
1:punkt1;
2:punkt2;
3:i:=2;{ выход }
end;
MenuToScr;
end;
until i=2;
end;
end.
Заключение.
В результате проделанной работы я написал прекрасную программу за 4
часа свободного от учёбы времени практически без помощи литературы и других
источников.
Программа основана на стандартных процедурах и функциях модуля Crt: Rename,
Erase, Append, Rewrite, Reset, Assign и др.
Список использованной литературы.
1. Попов В.Б. “Turbo Pascal для школьников”:
Учеб.пособие. – 3-е доп. изд. – М.: Финансы и статистика, 2001г.
2. Вирт Н. “Алгоритмы и структуры данных”:
Пер. с англ. – М.: Мир, 1989г.
3. Прайс Д. “Программирование на языке Паскаль: Практическое руководство”.
Пер. с англ. – М.: Мир, 1987г.
|