Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.01.2008, 00:21   #21
Vasya
Форумчанин Подтвердите свой е-майл
 
Аватар для Vasya
 
Регистрация: 21.01.2007
Сообщений: 193
По умолчанию

Код:
Var
   v: char;
   a, file_name:String;
   f:Text;
   i, k_word: integer;
begin
   k_word:=0;
   Writeln('Input file name');
   Readln(file_name);
   Assign(f, file_name);
   Reset(f);
   while not eof(f) do
   begin
      Read(f, v);
      for i:=length(v)downto 1 do
      while pos('  ',v)>0  do  delete (v, pos('  ',v), 1);
      if v in [' ',':', '(', ')', '{', '}', '[', ']', ';', ',', '.',#13,#10] then
      k_word:=k_word+1;
   end;
   close (f);
   Writeln('Count word in file = ', k_word);
   Writeln('Press <Enter> to exit');
   Readln;
end.
Vasya вне форума Ответить с цитированием
Старый 24.01.2008, 00:29   #22
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Напиши Var
v: string;
Как можно считывать файл в символ? Или в стоку или в массив символов. Кстати строка в принципе и есть массив символов.
puporev вне форума Ответить с цитированием
Старый 24.01.2008, 00:32   #23
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

И еще убери это
Writeln('Press <Enter> to exit');
Вполне хватит
Readln;
puporev вне форума Ответить с цитированием
Старый 24.01.2008, 00:33   #24
Vasya
Форумчанин Подтвердите свой е-майл
 
Аватар для Vasya
 
Регистрация: 21.01.2007
Сообщений: 193
По умолчанию

Ну тогда ошибка о несовместимости типов Char and String в этой строке:
if v in [' ',':', '(', ')', '{', '}', '[', ']', ';', ',', '.',#13,#10] then
Vasya вне форума Ответить с цитированием
Старый 24.01.2008, 00:38   #25
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Не if v in, if v[i] in. Строка не может быть символом, а ее элементы символы.
puporev вне форума Ответить с цитированием
Старый 24.01.2008, 00:42   #26
Vasya
Форумчанин Подтвердите свой е-майл
 
Аватар для Vasya
 
Регистрация: 21.01.2007
Сообщений: 193
По умолчанию

теперь вообще подсчитывает количество слов = 0, хотя их три
-----------------------------------------------------------------------

спасибо разобрался

Последний раз редактировалось Vasya; 24.01.2008 в 00:53.
Vasya вне форума Ответить с цитированием
Старый 24.01.2008, 00:54   #27
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Попробуй еще так, если не получится то я только завтра, вернее сегодня полностью посмотрю, а то у меня три часа ночи, засыпаю, извини, что не смог помочь.
Код:
while not eof(f) do  
   begin  
      Read(f, v);   
      for i:=length(v)downto 1 do  
         begin
           while pos('  ',v)>0  do  delete (v, pos('  ',v), 1);  
         end; 
      if v[i] in [' ',':', '(', ')', '{', '}', '[', ']', ';', ',', '.',#13,#10] then  
      k_word:=k_word+1;   
   end;
puporev вне форума Ответить с цитированием
Старый 24.01.2008, 00:58   #28
Vasya
Форумчанин Подтвердите свой е-майл
 
Аватар для Vasya
 
Регистрация: 21.01.2007
Сообщений: 193
По умолчанию

спасибо, ты очень помог
Vasya вне форума Ответить с цитированием
Старый 24.01.2008, 01:15   #29
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Еще подумал, можетбыть следующее:
1. У тебя в pos(' ',v) точно по два пробела стоят?
2. В конце текста должен стоять разделитель, обычно точка, иначе последнее слово не подсчитает.
3. Если первые два пункта верно, то попробуй написать так:

Код:
while not eof(f) do  
   begin  
      Read(f, v); 
   end;
k_word:=0;
for i:=length(v)downto 1 do  
   begin
       while pos('  ',v)>0  do  delete (v, pos('  ',v), 1);  
        if v[i] in [' ',':', '(', ')', '{', '}', '[', ']', ';', ',', '.',#13,#10] then  
        k_word:=k_word+1;  
   end;
4. Если ничего не получится и дело терпит хотя бы до завтра до обеда, то скинь мне в личку полный текст задания, попробую сделать, а то искать ошибки в чужих кодах не люблю.
puporev вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с текстовым файлом GazimagomedovM Помощь студентам 12 17.07.2008 18:24
Работа с текстовым файлом (delphi). Помогите доделать программу. Snord Помощь студентам 1 14.12.2007 14:10
Работа с текстовым файлом nataly_ukr БД в Delphi 23 07.12.2007 22:13
Работа с текстовым файлом! Edimus Общие вопросы C/C++ 10 19.11.2007 10:31
Модуль, работа с текстовым файлом Soul Паскаль, Turbo Pascal, PascalABC.NET 1 21.05.2007 20:30