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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.09.2010, 15:18   #1
assch
Пользователь
 
Регистрация: 13.09.2010
Сообщений: 65
По умолчанию Как вытащить функцию из исходника

Не подскажете, нужно сравнить два текстовых файла
(снимки файловой системы сделанные в разное время)
и найти разницу (какие файлы были добавлены).
Ну и записать эти файлы в третий текстовый файл.
Есть исходник программы WinDiff которая практически
мнгновенно делает сравнение и выводит информацию
в окно программы (правда как записать эту инфу в файл
я так и не разобрался). Не подскажете где находится
эта функция в программе. Например в файле WINDIFF.C
Хотя могу и ошибатся может она (или они) находится
в других файлах на всякий случай прелепил весь исходник.
Короче нужно вытащить эту функцию. Своих знаний пока
не хватает.
Или это не возможно.
Вложения
Тип файла: rar WD.rar (149.3 Кб, 7 просмотров)
assch вне форума Ответить с цитированием
Старый 13.09.2010, 15:21   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
компьютер ведь для дома?
А что за текстовые файлы? В каком виде там инфа хранится?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.09.2010, 15:26   #3
assch
Пользователь
 
Регистрация: 13.09.2010
Сообщений: 65
По умолчанию

C:\Assch
C:\AUTOEXEC.BAT
C:\boot.ini
C:\Bootfont.bin
C:\CONFIG.SYS
C:\Documents and Settings
C:\IO.SYS
C:\MSDOS.SYS
C:\NTDETECT.COM
C:\ntldr
C:\pagefile.sys
C:\Program Files
C:\RECYCLER
C:\System Volume Information
C:\WINDOWS
assch вне форума Ответить с цитированием
Старый 13.09.2010, 15:30   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Мне кажется что проще написать заново быстренько такую функцию сравнения чем выдирать чужое.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.09.2010, 15:36   #5
assch
Пользователь
 
Регистрация: 13.09.2010
Сообщений: 65
По умолчанию

Если бы я обладал такими знаниями то конечно
Эта функция слишком большая?
assch вне форума Ответить с цитированием
Старый 13.09.2010, 15:51   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Не думаю.
В цикле считать в строку весь файл, а потом читая построчный искать считанную строку в исходной строке. Если не найдена - вывести.
Порядка 10-20 строк кода.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.09.2010, 16:04   #7
assch
Пользователь
 
Регистрация: 13.09.2010
Сообщений: 65
По умолчанию

Текстовые файлы весят около 2 мб, в них больше 20000 строк (это если делать
снимок ещё на свежей винде). Мне давали одну функцию правда не на - С .
Так вот она ищет изменения около 2 минут. А программа WinDiff делает это
практически мгновенно. Поэтому я хотел узнать что эта за функция, какими
алгоритмами она работает.
assch вне форума Ответить с цитированием
Старый 13.09.2010, 19:51   #8
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

Ну, по информации внутри искать и не нужно, раз ты сказал что можно и по сравнению времени. _findfirst32()/_findnext() и т.д. а в условиях проверяешь определенные атрибуты, то есть в твоем случае это время.
coNsept вне форума Ответить с цитированием
Старый 13.09.2010, 20:58   #9
assch
Пользователь
 
Регистрация: 13.09.2010
Сообщений: 65
По умолчанию

По сравнению времени не пойдёт так как некоторые программы например
при инсталяции ставят (некоторые) файлы с более ранним сроком
по этому такой алгоритм их не отследит
Кстати это первое что мне пришло на ум
я даже сделал функцию
Эксперементировал со всеми тремя атрибутами времени
1 Создание
2 Открытие
3 Изменение
Но увы сталкнулся с такой проблемой

Последний раз редактировалось assch; 13.09.2010 в 21:05.
assch вне форума Ответить с цитированием
Старый 13.09.2010, 21:25   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

1) если Вы точнее опишите, что Ваша программа должна высветить (приведёте два текстовых файла и скажете, что Вы хотите получить на выходе) - я Вам такую утилитку на Delphi могу написать.

2) банальное fc пробовали?

3) А ещё попробуйте утилитку TextDiff (с) Angus Johnson
Какой-никакой, но отчёт о найденных различиях в ней присутствует...
Вложения
Тип файла: rar TextDiff.rar (227.5 Кб, 36 просмотров)
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как создать дистрибутив из исходника Delphi + BDE ? golt-andrej Общие вопросы Delphi 3 04.08.2010 03:52
Как из кода вытащить 5,6,7 символы Romuald Microsoft Office Excel 6 14.01.2009 09:25
как вытащить форму Барби Помощь студентам 5 01.10.2008 09:02
Как вытащить из XP список пользователей UnD)eaD)Snake Win Api 10 29.04.2008 20:38
Как вытащить путь к файлу UnD)eaD)Snake Общие вопросы Delphi 13 20.08.2007 22:09