Пример 1. 4 Слов в тексте исходного файла. Последовательность ключевых слов упорядочить по

program Number_1_4;

uses Crt;

{Создать текстовый файл. С помощью созданного для решения этой задачи файла

Ключевых слов собрать статистику по частоте появления ключевых

Слов в тексте исходного файла. Последовательность ключевых слов упорядочить по

алфавиту}

type ss=string[20];

sisx=string[80];

tword = record

st: ss;

i: word;

end;

ff=file of ss;{файл для хранения

ключевых слов}

aa= array[1..60] of tword; {массив для хранения результатов обработки исходного файла ключевых слов в памяти; Предполагаем, что более 60 различных ключевых слов у нас не будет в одном тексте}

var x:integer;

stt:aa;

f:ff;

procedure File_create(var t:text);

var i:word;

str: ss;

si:sisx;

k:char;

Begin

str:='ttt.txt';

gotoxy(40,10);

writeln('Имя файла для хранения текста -ttt.txt');

assign(t,str);

rewrite(t);

Repeat

writeln('Вводите текст');

readln(si);{Вводим и записываем текст построчно}

writeln(t,si);

writeln('Текст весь введен?- y or n');

readln(k);

until k='y';

close(t); {Обязательное закрытие файла, чтобы сформировать признак конца файла и

иметь возможность его проверить при чтении файла}

end;

function test_file(var t:text):boolean;

Var

b:boolean;

Begin

test_file:=false;

gotoxy(40,10);

writeln('Проверяем всегда наличие файлов',#10#13, ' для работы');

ssign(t,'ttt.txt');

{$i-}

reset(t);

{$i+}

if ioresult<>0 then

Begin

writeln('Файл не найден с исходным текстом');

writeln('Необходимо создать или заполнить файл');

File_create(t);

b:=test_file(t);

exit;

End else

test_file:=true;

end;

procedure file_key;

var x:integer;

a:ss;

k:char;

Begin

assign(f,'key.txt');

rewrite(f);

Repeat

writeln('Введите последовательность ключевых слов '

,#10#13,' наличие которых хотите',#10#13,

' проверить в некотором тексте');

{Коды конца строк позволяют вывести текст более компактно }

readln(a);

write(f,a);

writeln('Все слова введены - y or n');

readln(k);

until k='y';

close(f);

end;

procedure key_load;

{Ключевые слова размещаем в памяти, чтобы обеспечить проверку исходного текст}

Var

sa:ss;

Begin

x:=1;

assign(f,'key.txt');

reset(f);

While not eof(f) do

Begin

read(f,sa); write(sa,'***');

stt[x].st:=sa;

stt[x].i:=0;

inc(x);{Количество слов будет на 1 меньше!!}

end;

writeln('Количество слов=', x-1);

close(f);

{Ключевые слова прочитаны из файла и сформирован шаблон для представления результатов обработки текста. Количество определенных ключевых слов будет заноситься в поле результата компоненты записи }

end;

procedure key_word_stat;

{Статистику по частоте появления ключевых слов в тексте соберем при чтении тестового файла}

var p:boolean;

t,j:integer;

f:text;

str:ss;

Begin

p:=test_file(f);

If p then

Begin

While not eof(f) do

Begin

readln(f,str);

writeln(str);

for j:=1 to x-1 do

Begin

t:=pos(stt[j].st,str);

while t<>0 do

Begin

inc(stt[j].i);

delete(str,t,length(stt[j].st));

{ удаляем те ключевые слова в строке, которые уже найдены }

t:= pos(stt[j].st,str);

end;

writeln('***',stt[j].st,stt[j].i);

{предложение только для контроля за решением задачи}

end;

end;

close(f);

readln;


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: