Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Алгоритм сравнения файлов в сис-ме контроля версий, Ищу подробное описание или ссылку 
V
    Опции темы
g-r-i-n
Дата 18.7.2007, 01:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 12.12.2003
Где: Киев

Репутация: нет
Всего: 3



 Добрый день.
 Поискал по форуму - сабж вроде не нашел.
 Мне нужно описание алгоритма сравнения двух модификаций
одного файла, т.е. основной операции таких систем как
CVS и SVN. Там используется какая-то предварительная
разметка? Как решаются проблемы, которые даже человек
не может разрешить в данном случае (а они есть)?
 Описание мне нужно настолько подробное, чтобы можно
было написать свою несложную систему. Если кто знает
русскоязычные ссылки - буду очень благодарен.
 Спасибо.
PM MAIL WWW ICQ   Вверх
maxim1000
Дата 18.7.2007, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



можно попробовать покопать в сторону динамического программирования
вот есть ссылочка: http://www.dcs.shef.ac.uk/~stu/com326/sym.html
правда, там на английском, зато картинка вполне неплохо отображает принцип


--------------------
qqq
PM WWW   Вверх
g-r-i-n
Дата 18.7.2007, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 12.12.2003
Где: Киев

Репутация: нет
Всего: 3



maxim1000, спасибо за совет. Только мне кажется должен быть какой-то готовый алгоритм конкретно под эту задачу. Придумать как подогнать динамическое программирование под разбор текста возможно, но не хочется изобретать велосипед.
 У меня была, конечно, мысль взять исходники открытых продуктов в этой области, но разбираться в МИГ-29 не более эффективно, чем изобретать велик. А делиться своими ноу-хау разработчики серьезных продуктов, естественно, не хотят. Но я надеюсь, что это знание - достояние всей математики, а не только "избранных". Вопрос только - где найти этот готовый основной алгоритм?
PM MAIL WWW ICQ   Вверх
AriX
Дата 19.7.2007, 14:08 (ссылка) |   (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 311
Регистрация: 16.6.2003

Репутация: нет
Всего: 19



g-r-i-n, честно говоря, не знаю, поможет или нет. Но посмотри вот этот опен-сорс проект - http://kdiff3.sourceforge.net/

Исходники на С++ есть. Скорее всего, сравнение делает один или несколько модулей, которые, можно будет подцепить к твоей программе. Там же, на сайте, есть небольшой pdf документ Abstract, который немного описывает принципы работы.
PM MAIL   Вверх
g-r-i-n
Дата 19.7.2007, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 12.12.2003
Где: Киев

Репутация: нет
Всего: 3



AriX, Спасибо большое. Это уже гораздо ближе. Думаю в начало лабиринта я уже попал =)  +1!

Добавлено через 2 минуты и 30 секунд
maxim1000, я случайно зацепил голосование на пост, причем в минус! Это как-то можно исправить?
PM MAIL WWW ICQ   Вверх
maxim1000
Дата 19.7.2007, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



Цитата(g-r-i-n @  19.7.2007,  14:38 Найти цитируемый пост)
maxim1000, я случайно зацепил голосование на пост, причем в минус! Это как-то можно исправить?

похоже, нет, но это и не сильно страшно


--------------------
qqq
PM WWW   Вверх
Pool
  Дата 24.1.2008, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 24.1.2008

Репутация: нет
Всего: нет



Доброго времени суток!

У меня такая жи задача ...  сравнить 2 файла(старый и новый) CVS  и вывести все новые строки из нового файла в мемо     ....   я вроде сам наклепал , но он почемута работает только до половины и страшно загружает пк при этом ....

Код

procedure TForm1.Button3Click(Sender: TObject);
var
 String1, String2: PAnsiChar;
 res: integer;
 i,j:integer;
 z1, z2: integer;
 is_run: boolean;
begin
Button1.Enabled:=False;
Button2.Enabled:=False;

Memo3.Lines.Add('start');
z1 := Memo1.Lines.Count;
z2 := Memo2.Lines.Count;

i := 0;
while i < z1 do
  begin
    String1 := PChar(Memo1.Lines.Strings[i]);
    //Memo3.Lines.Add(String1); Continue;
    j := 0;
    //is_run := true;
    while j < z2 do
      begin
        String2 := PChar(Memo2.Lines.Strings[j]);
        if(StrIComp(String1, String2) = 0) then
          begin
            Memo3.Lines.Add(String1);
            Memo2.Lines.Delete(j);
            Memo1.Lines.Delete(i);
            z1 := Memo1.Lines.Count;
            z2 := Memo2.Lines.Count;

            Label5.Caption:='Количество строк файла №1 = '+IntToStr(z1);
            Label6.Caption:='Количество строк файла №2 = '+IntToStr(z2);
            //j := Memo1.Lines.Count + 1;
          end;
          j := j + 1;
          Application.ProcessMessages;
      end;
      i := i + 1;
  end;

  Memo3.Lines.Add('finished');


end;

Модератор:  пользуемся кнопкой "Код"

Это сообщение отредактировал(а) maxim1000 - 24.1.2008, 19:11
PM MAIL   Вверх
g-r-i-n
Дата 24.1.2008, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 12.12.2003
Где: Киев

Репутация: нет
Всего: 3



Pool: спасибо за ответ, но это другая задача. Она действительно решается в несколько строк и к CVS, в общем-то, отношения не имеет. Но то что мне нужно было - не сравнение старого файла и нового, а сравнение двух модификаций одного файла. А это уже серьезная наука, т.к. связана чуть ли не с распознаванием образов.
 Я тогда нашел выход из ситуации (применять сравнение файлов не пришлось), так что тему можно продолжать разве из энтузиазма =) Спасибо всем, кто помог мне разобраться в этом вопросе!
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0975 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.