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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.03.2010, 15:39   #1
kakawkin
Форумчанин
 
Регистрация: 21.09.2009
Сообщений: 431
По умолчанию Слияние двух бинарных файлов

Вот есть программа:

Код:
program tt;
var
  f1, f2: file;
  xfer: Word;
  buf: PChar;
begin
  Assign(f1, '1.exe');
  Reset(f1);
  Seek(f1, Filesize(f1));
  Assign(f2, '2.exe');
  Reset(f2);
  GetMem(buf, 65000);
  repeat
    BlockRead(f1, buf^, 65000, xfer);
    BlockWrite(f2, buf^, xfer);
  until
    xfer < 65000;
  Close(f1);
  Close(f2);
end;

Ложу в папку файлы: 1.exe 2.exe program.exe (program - скомпилированная программа для слияния)
1.exe - 1 мегабайт
2.exe - 2 мегабайт
при запуске program.exe размеры не меняются вообще ни у одного файла

В чём может быть проблема ?
kakawkin вне форума Ответить с цитированием
Старый 29.03.2010, 15:41   #2
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Reset - открытие на чтение. Вам нужно наверное append.
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 29.03.2010, 15:45   #3
kakawkin
Форумчанин
 
Регистрация: 21.09.2009
Сообщений: 431
По умолчанию

вот как написано:
procedure Append(var f:text)
а у меня то f1:file;
kakawkin вне форума Ответить с цитированием
Старый 29.03.2010, 15:50   #4
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

без разницы=)
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 29.03.2010, 15:59   #5
kakawkin
Форумчанин
 
Регистрация: 21.09.2009
Сообщений: 431
По умолчанию

не прёт просто напросто - ругается на именно это.
kakawkin вне форума Ответить с цитированием
Старый 29.03.2010, 16:11   #6
kakawkin
Форумчанин
 
Регистрация: 21.09.2009
Сообщений: 431
По умолчанию

всё - решено. нехватало Reset(f1); --> Reset(f1, 1);
kakawkin вне форума Ответить с цитированием
Старый 29.03.2010, 16:11   #7
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

А ты куда устанавливаешь файловый указатель?
Seek(f1, Filesize(f1));
И что после этого читаешь из первого файла?
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 29.03.2010, 21:12   #8
kakawkin
Форумчанин
 
Регистрация: 21.09.2009
Сообщений: 431
По умолчанию

это тоесть ставить указатель на самый последний байт файла чтоыб со второго всё копирнуть в конец первого
kakawkin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Слияние двух массивов в Delphi sauron99 Помощь студентам 17 03.04.2016 09:37
Слияние двух файлов в один hen Общие вопросы C/C++ 1 07.10.2009 22:59
Чересстрочное слияние двух файлов в один hen Общие вопросы C/C++ 5 01.10.2009 15:15
Чтение Бинарных Файлов Maksitron Общие вопросы C/C++ 6 23.02.2009 21:37
Слияние двух текстовых файлов nataly_ukr Общие вопросы Delphi 5 26.12.2007 16:45