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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2013, 21:05   #1
artemmmmmmm
Новичок
Джуниор
 
Регистрация: 20.05.2013
Сообщений: 1
По умолчанию ПРОГРАММА С ФАЙЛАМИ в чем ошибка?

Составить программу, которая сравнивает два файла посимвольно. Создать новый файл, включающий только совпадающие символы этих файлов. Помогите пожалуйста, не пойму в чем ошибка?Turbo Pascal

Код:
var F1, F2, Fr : File of Byte; B1, B2 : Byte; 
begin 
Assign(F1, '1file'); Assign(F2, '2file'); Assign(Fr, 'ResFile'); 
Reset(F1); Reset(F2); Rewrite(Fr); 
while Not EOF(F1) and Not EOF(F2) do begin Read(F1, B1); Read(F2, B2); if B1 = B2 then Write(Fr, B1); end; 
Close(F1); Close(F2); Close(Fr); 
end.

Последний раз редактировалось Stilet; 21.05.2013 в 22:28.
artemmmmmmm вне форума Ответить с цитированием
Старый 20.05.2013, 22:24   #2
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

На вид всё верно..
Но только, наверное, всё-таки указать расширение файлов будет лучше..
Poma][a вне форума Ответить с цитированием
Старый 21.05.2013, 19:44   #3
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Честно говоря, не совсем понятно условие.
Например, есть два файла:
1-й: "абвгдежз"
2-й: "бвгдежз"
Что именно должно быть перенесено в третий файл?
s-andriano вне форума Ответить с цитированием
Старый 21.05.2013, 22:22   #4
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Подозреваю, что цикл надо переписать так:

Код:
while Not EOF(F1) do begin
  Read(F1, B1);
  While Not EOF(F2) do begin 
    Read(F2, B2); 
    if B1 = B2 then begin
      Write(Fr, B1); 
      break;
    end;
  end; 
end;
Надо только перед вторым циклом курсор в файле на начало возвращать.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...

Последний раз редактировалось Sciv; 21.05.2013 в 22:30.
Sciv вне форума Ответить с цитированием
Старый 22.05.2013, 20:59   #5
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,311
По умолчанию

s-andriano
Цитата:
Например, есть два файла:
1-й: "абвгдежз"
2-й: "бвгдежз"
Что именно должно быть перенесено в третий файл?
В этом случае совпадений нет и выходной файл пуст.

Возможно, что в условии цикла AND надо заменить на OR.
В таком случае при обнаружении конца одного из файлов задача завершится.


Как-то так, ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу понять в чем ошибка...(работа с файлами) Lapochka Помощь студентам 0 28.04.2012 17:58
в чем ошибка? программа работает но не проверяет Tolian92 Паскаль, Turbo Pascal, PascalABC.NET 0 07.12.2011 18:29
Visual Studio не компилируется программа. Ошибка в iostream.h (no such file or directory). В чем проблема? Mubat Visual C++ 2 19.10.2011 20:41
Не пойму, в чем ошибка... ООП.Работа с файлами данных, С++ Purr Помощь студентам 2 24.10.2010 22:06
ПРограмма компилируется, но не работает, в чем ошибка. Dalokoshka Помощь студентам 16 18.10.2010 20:29