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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.07.2009, 15:21   #1
gemoglobin
Новичок
Джуниор
 
Регистрация: 08.07.2009
Сообщений: 2
По умолчанию нужна помощь в работе с файлами

суть задачи -- нужно проверить наличие строк с одного файла в другом! проблема в том, что прога непроверяет все записи. где ошибка ?
Код:
program vigr;
uses dos,crt;

var

  i1,i2,i,d,z,r1,r2:string;
  F_dolg,F_zapl,F_rez1,F_rez2:text;
  m,k:integer;

begin  clrscr; m:=0; k:=0;
                                                        то что синим в учёт неберите
  {otkrivaem faily dlja raboty}
     assign(F_dolg,'dolg.txt');

          assign(F_zapl,'zapl.txt');

              assign(F_rez1,'rez1.dat');

                 assign(F_rez2,'rez2.dat');

     reset(F_dolg);
       reset(F_zapl);
         rewrite(F_rez1);
           rewrite(F_rez2);

   {zapisivaet rezul'tat obrabotki fajla dolg.txt v fail rez1.dat}

     while not eof(F_dolg) do

         begin
              readln(F_dolg,d);

               i2:=copy(d,10,15);  writeln(F_rez1,i2);
         end;

     close(F_rez1);
   {zapisivaet rezul'tat obrabotki fajla zapl.txt v fail rez2.dat}

   while not eof(F_zapl) do

         begin
              readln(F_zapl,d);

               i2:=copy(d,10,15);  writeln(F_rez2,i2);
         end;

   close(F_rez2);

{zakrivaem faily dolg.txt i zapl.txt }
close(F_dolg);
close(F_zapl);

{prodoljenie .....}
   assign(F_rez1,'rez1.dat');
     assign(F_rez2,'rez2.dat');
       reset(F_rez1);
         reset(F_rez2);


     while not eof(F_rez1) do
     begin
       readln(F_rez1,r1);

       while not eof(F_rez2)  do
       begin
         readln(F_rez2,r2);  k:=k+1;write(k,'  ');
         if (r1=r2) then m:=m+1; в принципе неработает только красный кусок 

       end;
     end;


writeln(m);
writeln('....complete...');
readln;
end.
вот ! ПОМОГИТЕ ПЛИЗ!

Последний раз редактировалось gemoglobin; 08.07.2009 в 15:31.
gemoglobin вне форума Ответить с цитированием
Старый 08.07.2009, 15:55   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Правильно не работает:
Код:
     while not eof(F_rez1) do
     begin
       readln(F_rez1,r1);
reset(F_rez2);
       while not eof(F_rez2)  do
       begin
         readln(F_rez2,r2);  k:=k+1;write(k,'  ');
         if (r1=r2) then m:=m+1; в принципе неработает только красный кусок 

       end;
     end;
Тебе каждый раз его переоткрывать нужно.
вообще я бы не так сделал... Через указатели, загружал весь файл в память а потом... Впрочем и так пройдет.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.07.2009, 17:21   #3
gemoglobin
Новичок
Джуниор
 
Регистрация: 08.07.2009
Сообщений: 2
По умолчанию

Stilet !!! СПАСИБО БОЛЬШОЕ!!!
gemoglobin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа по работе с текстами. Нужна помощь :( Verwolf Помощь студентам 4 08.07.2009 19:49
Нужна помощь по работе с файлом *.chm(поиск по ключевым словам) v_skull Общие вопросы Delphi 5 21.06.2009 14:44
нужна помощь в работе с формой и БД Aliyushka Microsoft Office Excel 0 15.01.2009 23:54
Работа с файлами. Нужна помощь. Corwin88 Помощь студентам 9 14.05.2008 22:37
нужна помощь по работе с строками файлов... Ruffian Общие вопросы Delphi 9 15.11.2006 16:05