Рефетека.ру / Информатика и програм-ие

Реферат: Создание текстового редактора в 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 ioresult0 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 i

Рефетека ру refoteka@gmail.com