IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> текстовый фаил, неполучается работать с каждой строкой
Alucard
сообщение 10.05.2009 18:39
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской
Реальное имя: Влад

Репутация: -  0  +


Программа считает сколько слов в строке начинается и заканчивается на одну и ту же букву. Проблем в том, если фаил содержит две и более строки код анализирует только последнюю. Подскажите что добавить, что бы учитывалась каждая строка?

Код
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.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 4)
amega
сообщение 10.05.2009 19:21
Сообщение #2


?
***

Группа: Пользователи
Сообщений: 283
Пол: Мужской

Репутация: -  4  +


Цитата
код анализирует только последнюю

все правильно, потомучот после выхода из процедуры лист у тебя только 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;
...



 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 10.05.2009 19:30
Сообщение #3


Гость






   while not eof(f) do 
begin
readln(F, ln); { <--- }
Читать из файла надо, amega
 К началу страницы 
+ Ответить 
Alucard
сообщение 10.05.2009 19:37
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской
Реальное имя: Влад

Репутация: -  0  +


Спасибо ребята!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
amega
сообщение 11.05.2009 18:01
Сообщение #5


?
***

Группа: Пользователи
Сообщений: 283
Пол: Мужской

Репутация: -  4  +


Цитата
Читать из файла надо, amega

извиняюсь, пропустил момент.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 28.07.2025 13:17
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"