Консультация № 31763
18.12.2005, 18:06
0.00 руб.
0 5 3
Подскажите как производить чтение из файла пословно.
Допустим есть файл (текстовый) и из него надо выделять слова:
Например:
Заголовок
Таблица
итог.

f: TextFile;
Begin
AssignFile(f, nm);

- а что дальше писать?

Обсуждение

Неизвестный
18.12.2005, 18:36
общий
это ответ
Здравствуйте, Andrew!
Ну дык и читаете до пробела, дальше новое слово. А специальной функции для пословного чтения нет.
Намётки в приложении. Не проверял, но должно работать. Суть в чём: если пробел или перевод строки, то следующее слово, иначе прибавляем символ к текущему слову.

Приложение:
a:array[1..100] of string;i:integer;i:=1;c:=‘a‘;while not EOF do beginread(c);if (c<>‘ ‘) and (c<>#10) and (c<>#13) then begin a[i]:=a[i]+celse inc(i);end;end;
давно
Мастер-Эксперт
425
4118
18.12.2005, 19:23
общий
это ответ
Здравствуйте, Andrew!
Вам надо перебирать строку посимвольно. Если попадаются символы больше пробела, то он плюсуется к предыдущему. Если символ пробел и меньше, то пропускается, а слово записаное ранее кончается.
Об авторе:
Я только в одном глубоко убеждён - не надо иметь убеждений! :)
Неизвестный
19.12.2005, 13:13
общий
Добавлю, что удобнее будет в этом случае File of char - типизированныйилиFile - нетипизированный
Неизвестный
19.12.2005, 13:47
общий
это ответ
Здравствуйте, Andrew!
Можно вот так:
1) Считываем всю строку.
2) Ищем в строке 1-ый пробел, выделяем слово до этого пробела.
3) Запоминаем слово и удаляем его из строки вместе с пробелом.
4) Повторяем со 2-ого пункта пока в строке не останется пробелов. То что останется в строке будет последним словом.
В следующей программе приведена программа, ситывающая слова из файла, записанные через пробел и записывающая х в столбик.

Приложение:
program Project2;{$APPTYPE CONSOLE}uses SysUtils;var f:textfile; s,w:string; //S-строка, w-слово k:integer;begin AssignFile(f,‘1.txt‘); reset(f); readln(f,s); while pos(‘ ‘,s)<>0 do begin k:=pos(‘ ‘,s); w:=copy(s,1,k-1); writeln(w); delete(s,1,k); end; w:=s; writeln(w); readln; closefile(f)end.
Неизвестный
19.12.2005, 19:52
общий
спасибо всем кто откликнулся.вы мне очень помогли.
Форма ответа