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

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

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

> Обработка текстовых файлов
NTL
сообщение 24.12.2006 16:55
Сообщение #1


Фанат Delphi
**

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

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


Даны текстовые файлы f и g. Определить, совпадают ли они. Если нет, то получить номер первой строки, в которой файлы f и g различаются. В случае, когда один из файлов имеет N строк и является началом другого более длинного, ответом должен быть число N+1. Помогите, подправить прогрмму, пожалуйста... give_rose.gif
Код

var f,g:text;
    fff,ggg: string;
    i,j,k,ind,k1,k2:integer;
    c:char;
    flag,z:boolean;{отвечает - если файлы одинаковые}

begin
ClrScr;
Assign(f,'C:\f.txt');{Связываем файл с переменной}
Assign(g,'C:\g.txt');

reset(f);
k1:=1;
  while not EOF(f)do         {пока не достигнут конец файла}
    begin
       readln(f,fff);      {читаем из файла в массив}
       writeln(fff);
       inc(k1);
    end;
close(f);                    {закрываем файл}

writeln;

reset(g);
k2:=1;
  while not EOF(g)do
    begin
       readln(g,ggg);
       writeln(ggg);
       inc(k2);
    end;
close(g);

if k1>k2 then k:=k2         {запоиминаем, в каком файле меньше строк}
else if k1<k2 then k:=k1;
flag:=false;

reset(f);reset(g);
z:=Eof(f) or eof(g);
j:=1;
while not z do
   begin

      if  (fff=ggg) then
        begin

           flag:=true
        end  else
         begin
            ind:=j;
            flag:=false;
            break
         end;
     inc(j);
   end;
  if (ind<>1)and(ind<>k) then writeln('Files not equaly. Error in statement #',ind);
    writeln('====',ind,'====',k);
    if (k1=k2) then
    else write('Files is a part of other file, ',k);

    if flag=true then writeln('Files equally');    {файлы одинаковые}
    close(f);close(g);
readln;
end.


--------------------
ICQ (384-043-857)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



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