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

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

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

> Сравнение текстовых файлов, задача
Moony
сообщение 30.11.2004 21:09
Сообщение #1


Новичок
*

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

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


такая вот задачка, помогите пожалуйста с решением

Даны два текстовых файла. Определить, совпадают ли компоненты первого файла с компонентами второго файла, ели нет, то получить номер строки и позицию символа в этой строке, начиная с которого файлы отличаются между собой. В случае, когда один из файлов повторяет начало другого (более длинного) файла, ответом должно быть соответствующее сообщение с указанием имени длинного файла и номера первой строки, которая не входит в короткий файл.

Сообщение отредактировано: Moony - 2.12.2004 15:43
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
ShadowWatcher
сообщение 2.12.2004 18:30
Сообщение #2


Новичок
*

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

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


Цитата
на уровне стандартных Паскалевских средств да, но вобще-то числа  (каждое число интерплитируется как код ASCII).

Ну, выпендрился smile.gif

Код

Var
 f1,f2:Text;
 s1,s2:String;
 i,n:Integer;
 bNotified:Boolean;
Begin
 Assign(f1,'c:\f1.Txt');Reset(f1);
 Assign(f2,'c:\f2.Txt');Reset(f2);
 bNotified := False;
 n := 1;
 While Not (Eof(f1)) Do
 Begin
   If (Eof(f2)) Then
     Break;
   ReadLn(f1,s1);
   ReadLn(f2,s2);
   If (s1<>s2) Then
   Begin
     For i:=1 To Length(s1) Do
       If (i > Length(s2)) Or (s1[i]<>s2[i]) Then
         Break;
     WriteLn('String #',n,' Character#',i);
     bNotified := True;
     Break
   End;
   Inc(n)
 End;
 If Not bNotified Then
   If Eof(f1) And Not Eof(f2) Then
     WriteLn('f2 is longer than f1. f1 consists only ',n,' strings')
   Else
     If Eof(f2) And Not Eof(f1) Then
       WriteLn('f1 is longer than f2. f2 consists only ', n ,' strings')
     Else
       WriteLn('Files Are Equal');
 Close(f1);
 Close(f2);
 ReadLn
End.


Вроде так...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Moony   Сравнение текстовых файлов   30.11.2004 21:09
GoodWind   Moony, что-нибудь уже сделано ?   30.11.2004 21:16
ShadowWatcher   А что такое компонент текстового файла?   1.12.2004 11:05
xds   Строка ;)   1.12.2004 11:28
ShadowWatcher   Тогда брутфорса должно вполне хватить...   1.12.2004 11:52
Moony   Если не трудно напишите алгоритм решения к задачи ...   2.12.2004 16:20
xds   Последовательно читать строки и увеличивать счетч...   2.12.2004 16:22
Altair   :) на уровне стандартных Паскалевских средств ...   2.12.2004 17:05
volvo   Oleg_Z Вообще-то, строка читается ReadLn :p2: т...   2.12.2004 17:07
Altair   :p2: :rolleyes:   2.12.2004 17:12
Moony   ReadLn прочитает 1-ую строку из файла, а как перей...   2.12.2004 18:26
volvo   Moony ReadLn будет читать строки, пока есть что ч...   2.12.2004 18:28
ShadowWatcher   Ну, выпендрился :) Var  f1,f2:Text; ...   2.12.2004 18:30
Altair   старался из всех сил для тебя выпендрится :);)   2.12.2004 21:35
xds   Oleg_Z, числа - компонент любого файла. Текстовый ...   3.12.2004 4:00
Moony   А как можно решить задачу без использования Break...   11.12.2004 18:07
volvo   Moony А оно тебе надо? Если надо, то учти, что до...   11.12.2004 18:30


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

 



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