Помощь - Поиск - Пользователи - Календарь
Полная версия: текстовый фаил
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Alucard
Программа считает сколько слов в строке начинается и заканчивается на одну и ту же букву. Проблем в том, если фаил содержит две и более строки код анализирует только последнюю. Подскажите что добавить, что бы учитывалась каждая строка?

Код
program laba91;
uses    crt;
const   filename='c:\text.txt';
var     f:text;
        ln:string[80];
        i,k,poz,n,m:byte;
        s,a:string;

procedure list;
begin
     textcolor(15);
     writeln('Text of the file');
     textcolor(yellow);
     reset(f);
     while not eof(f) do
       begin
         readln(f,ln);
         writeln(ln);
       end;
     close(f);
end;

begin
     clrscr;
     assign(f,filename);
     list;
     n:=0;
     k:=length(ln);
     for i:=1 to length(ln) do
       begin
         poz:=pos(' ',ln);
         m:=poz-1;
         if i=k then m:=k;
         if ln[1]=ln[m] then
          begin
           n:=n+1;
           delete(ln,1,poz);
          end
         else delete(ln,1,poz);
      end;
      writeln;
      textcolor(7);
      writeln(n);
      readln;
end.
amega
Цитата
код анализирует только последнюю

все правильно, потомучот после выхода из процедуры лист у тебя только 1 последняя строка
нужно еще раз открыть файл и построчно считывать строки

VAR
ln:string;
....


list;
n:=0;

reset(f);
while not eof(f) do
begin
readln(ln);
k:=length(ln);
for i:=1 to length(ln) do
begin
poz:=pos(' ',ln);
m:=poz-1;
if i=k then m:=k;
if ln[1]=ln[m] then
begin
n:=n+1;
delete(ln,1,poz);
end
else delete(ln,1,poz);
end;
end;
...



volvo
   while not eof(f) do 
begin
readln(F, ln); { <--- }
Читать из файла надо, amega
Alucard
Спасибо ребята!
amega
Цитата
Читать из файла надо, amega

извиняюсь, пропустил момент.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.