A
a9x
Помогите пож написать программу на Delphi, которая считывала txt файл и считала словарный запас - считала кол-во всех слов из файла, те слова которые повторяются считала за одно.
Я находил проги которые считаю слова, но как сделать чтоб повторяющиеся считала за одно не знаю(
Если поможет - вот прога считает просто кол-во слов. Тока через мемо(
procedure TForm1.Button1Click(Sender: TObject);
const
//Множество разделителей.
D = ['.', ',', ':', ';', '!', '?', '-', ' ', #9, #10, #13];
var
S : String;
i, Len, LenW, Cnt : Integer;
begin
S := Memo1.Text;
Len := Length(S);
LenW := 0;
Cnt := 0;
//Перебор символов строки слева - направо.
for i := 1 to Len do begin
//Пропускаем разделители.
if S in D then Continue;
//Очередной символ учитываем в длине слова.
Inc(LenW);
//Отслеживаем конец слова.
if (i = Len) or (S[i + 1] in D) then begin
//Подсчёт общего количества слов.
Inc(Cnt);
//Сброс длины слова.
LenW := 0;
end;
end;
//Ответ:
ShowMessage('Словарный запас: ' + IntToStr(Cnt));
end;
end.
Я находил проги которые считаю слова, но как сделать чтоб повторяющиеся считала за одно не знаю(
Если поможет - вот прога считает просто кол-во слов. Тока через мемо(
procedure TForm1.Button1Click(Sender: TObject);
const
//Множество разделителей.
D = ['.', ',', ':', ';', '!', '?', '-', ' ', #9, #10, #13];
var
S : String;
i, Len, LenW, Cnt : Integer;
begin
S := Memo1.Text;
Len := Length(S);
LenW := 0;
Cnt := 0;
//Перебор символов строки слева - направо.
for i := 1 to Len do begin
//Пропускаем разделители.
if S in D then Continue;
//Очередной символ учитываем в длине слова.
Inc(LenW);
//Отслеживаем конец слова.
if (i = Len) or (S[i + 1] in D) then begin
//Подсчёт общего количества слов.
Inc(Cnt);
//Сброс длины слова.
LenW := 0;
end;
end;
//Ответ:
ShowMessage('Словарный запас: ' + IntToStr(Cnt));
end;
end.