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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2012, 18:11   #1
Proskurina
Форумчанин
 
Регистрация: 27.05.2012
Сообщений: 109
По умолчанию Даны 2 текстовых файла с целыми числами.Определить совпадают ли эти файлы?

Даны 2 текстовых файла с целыми числами.Определить совпадают ли эти файлы?
Proskurina вне форума Ответить с цитированием
Старый 27.05.2012, 19:52   #2
Proskurina
Форумчанин
 
Регистрация: 27.05.2012
Сообщений: 109
По умолчанию

выручайте завтра сдача зачета!!!!
Proskurina вне форума Ответить с цитированием
Старый 27.05.2012, 20:01   #3
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Если нужно именно на совпадение, то формат файла значения не имеет.
1. Сравнить длины файлов. Еси не совпадают - файлы разные.
2. При совпадении длин - читаем оба файла и сравниваем побайтно. Если хотя бы один байт не совпадает - массивы разные.
s-andriano вне форума Ответить с цитированием
Старый 27.05.2012, 20:17   #4
Proskurina
Форумчанин
 
Регистрация: 27.05.2012
Сообщений: 109
По умолчанию

я решила эту задачу она не работает. вот решение посмотрите в чём ошибка????
Код:
Program lab4;
uses crt;
 Var F1,F2:Text;
 S1,S2:String; 
 Flag:Boolean;
begin
 Flag:=True;
 Assign(F1,'d:\1.txt'); 
 Assign(F2,'d:\2.txt');
 Reset(F1);
 Reset(F2); 
 While (not EOF(F1)) or (not(EOF(F2))) do Begin 
 readln(F1,S1);
 readln(F2,S2);
 if S1<>S2 then Flag:=False; 
 end;
 if (Flag) and (FileSize(F1)=FileSize(F2)) then write('Ravni')
 else write('Ne ravni');
 Close(F1);
 Close(F2);
readln;
end.

Последний раз редактировалось Stilet; 27.05.2012 в 20:21.
Proskurina вне форума Ответить с цитированием
Старый 27.05.2012, 20:44   #5
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

К файлам типа text неприменимо определение размера при помощи filesize.
Я предлагал сравнивать побайтно, т.е. файл описывается как file of byte.
Но можно и так, как у Вас написано. В этом случае заведите еще две файловые переменные, скажем f3 и f4, и после того, как закроете файлы как текстовые, откройте их же как байтовые, после чего можно будет сравнить длину.

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

Как видите, любая задача имеет несколько вариантов решения.
s-andriano вне форума Ответить с цитированием
Старый 27.05.2012, 20:55   #6
Proskurina
Форумчанин
 
Регистрация: 27.05.2012
Сообщений: 109
По умолчанию

решите пожалуйста, у меня нет больше сил решать, у меня ещё 2 лабы. войдите в моё положение
Proskurina вне форума Ответить с цитированием
Старый 27.05.2012, 21:10   #7
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Я рекомендую фрагмент
Код:
(FileSize(F1)=FileSize(F2))
заменить на:
Код:
(EOF(F1) = EOF(F2))
s-andriano вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Осуществить слияние двух файлов в третий, используя два файла с целыми числами (на Паскале) Florence Помощь студентам 7 24.11.2013 19:27
Операций с целыми числами Uniskull C# (си шарп) 3 01.02.2012 17:20
Заполнить типизированный файл целыми числами, увеличить вдвое компоненты файла, стоящие после максимального (turbo pascal) Irishka_F Помощь студентам 3 30.01.2012 23:36
Разработать программу для заполнения типизированного файла целыми числами в интервале [-150; 150]. Поменя Pan_rust Паскаль, Turbo Pascal, PascalABC.NET 0 24.05.2010 23:03