Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа на обработку текста.DOC
Скачиваний:
10
Добавлен:
01.05.2014
Размер:
124.93 Кб
Скачать

6. Текст программы.

6.1 МодульInfo.

Unit Info;

Interface

const

cStrSize = 50; {ограничитель длины слова}

type

pList = ^tList;

UsedList=record{основной список – структура хранения данных}

L,Cur,Pred:pList

end;

pUList = ^UsedList;

tStr=record{строка – представление слова}

S: array [1..cStrSize] of Char;

Col: Integer

end;

Word = record

Word: tStr;

Num: Longint

end;

tInfo = ^Word;

tList = record

Date:tInfo;

Next: pList

end;

tpStr = ^tStr;

tpWord = ^tInfo;

Implementation

begin

end.

6.2 Модуль lLisTt

unit LLisTT;

interface

Uses Info;

function EOLIst(vlist_:pUList):Boolean; {Проверка на конец списка}

procedure GoBOL(var vList_:puList); {Переход в начало списка}

procedure GoNext(var vlist_:puList); {Переход к следующему элементу}

function GetEl(vlist_:puList):tInfo; {Получение элемента из списка}

procedure Create(vList_:pUList); {Инициализация списка}

implementation

procedure Create(vList_:pUList);

begin

vList_^.L:=Nil;

vList_^.Pred:=Nil;

vList_^.Cur:=Nil;

end;

function EOLIst(vlist_:pUList):Boolean;

begin

If vlist_^.Cur^.Next=Nil then

EOList:=true

else

EOList:=false

end;

procedure GoBOL(var vList_:puList);

begin

If vlist_^.L<>Nil then

begin

vList_^.Cur:=vlist_^.L;

vlist_^.Pred:=Nil

end

else

begin

vList_^.Cur:=Nil;

vlist_^.Pred:=Nil

end

end;

procedure GoNext(var vlist_:puList);

begin

If not(EOList(vlist_)) then

begin

vlist_^.Pred:=vlist_^.Cur;

vlist_^.Cur:=vlist_^.Cur^.Next;

end

end;

function GetEl(vlist_:puList):tInfo;

begin

If vList_^.Cur<>Nil then

GetEl:=vList_^.Cur^.Date

end;

begin

end.

6.3 Модуль Service.

Unit Service;

interface

Uses crt;

Procedure ReadFout(S:String); {Чтение файла}

Procedure WriteFin(S:String); {Перезапись файла}

implementation

procedure WriteFin(S:String);

var

C:Char;

F:Text;

begin

assign(F,S);

rewrite(F);

C:='A';

clrscr;

writeLn(' ...Press Esc to end edition...');

writeLn;

while Ord(C)<>27 do

begin

C:=readkey;

If (Ord(C)<>072)and(Ord(C)<>075)and(Ord(C)<>077)and(Ord(C)<>080)and(Ord(C)<>27)and(Ord(C)<>13) then

begin

write(C);

write(F,C)

end;

If (Ord(C)=072)or(Ord(C)=075)or(Ord(C)=077)or(Ord(C)=080) then

GotoXY(WhereX-1,WhereY);

If Ord(C)=13 then

begin

WriteLn;

WriteLn(F)

end

end;

close(F)

end;

procedure ReadFout(S:string);

var

C:Char;

F:Text;

begin

assign(F,S);

reset(F);

clrscr;

writeLn(' ...Press any key to exit reading...');

writeLn;

while not(Eof(F)) do

begin

Read(F,C);

write(C)

end;

readkey;

close(F)

end;

begin

end.