Как посчитать все слова в текстовом файле с несколькими пробелами

Вопросы / ответыРубрика: LazarusКак посчитать все слова в текстовом файле с несколькими пробелами
0 +1 -1
Петр спросил 11 месяцев назад

Я пытаюсь написать процедуру, которая считает все слова в текстовом файле на Паскале. Я пытался обработать несколько пробелов, но я понятия не имею, как это сделать. Я попытался добавить булеву функцию Space, чтобы определить, является ли символ пробелом, а затем сделать


while not eof(file) do
begin
read(file,char);
words:=words+1;
if Space(char) then
while Space(char)
do words:=words;

но это не работает.  Есть идеи?

1 ответ
0 +1 -1
admin Админ. ответил 11 месяцев назад

Вам нужена переменная с двумя состояниями, а затем считать каждый раз, когда состояние вашей переменной изменяется.
Что-то вроде этого:

var 
  InWord: Boolean; 
  Ch: Char; 
begin 
  InWord := False; 
  while not eof(file) do begin 
    read(file, Ch); 
    if Ch in ['A'..'Z', 'a'..'z'] 
    then begin if not InWord then begin InWord := True; 
Words := Words + 1; 
end; 
end 
else 
InWord := False 
end; 
end;