Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.22;
Скачать: CL | DM;

Вниз

ФАЙЛЫ HELP!!   Найти похожие ветки 

 
Andron.Ru ©   (2005-12-20 13:22) [0]

Пытаюсь запихнуть в один файл несколько разных файлов... Причем формат файлов не должен играть никакой роли!! В чем ошибка ПОМОГИТЕ.... На Сях катит, а вот на Делфе нет.. Я думаю что все дело в работе с памятью... Заранее Спсб...

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm1 = class(TForm)
   Button1: TButton;
   Button2: TButton;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

 type
 THdr = record
  offset : Cardinal;
  size : Cardinal;
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  hdr : array [0..1] of THdr;
  sizeread : Cardinal;
  hfile1, map : HFile;
  content1, content2, ptr : Pointer;
begin
  hfile1 := CreateFile("c:\1.bmp", GENERIC_READ + GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
 hdr[0].size := GetFileSize(hfile1, nil);
  GetMem(content1, hdr[0].size);
 ReadFile(hfile1, content1, hdr[0].size, sizeread, nil);
  CloseHandle(hfile1);
 hdr[0].offset := sizeof(hdr);

  hfile1 := CreateFile("c:\1.txt", GENERIC_READ + GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
 hdr[1].size := GetFileSize(hfile1, nil);
  GetMem(content2, hdr[1].size);
 ReadFile(hfile1, content2, hdr[1].size, sizeread, nil);
 CloseHandle(hfile1);
 hdr[1].offset := sizeof(hdr);

  hfile1 := CreateFile("c:\outfile.bin", GENERIC_READ + GENERIC_WRITE, 0, nil, CREATE_ALWAYS,
   FILE_ATTRIBUTE_NORMAL, 0);
 map := CreateFileMapping (hfile1, nil, PAGE_READWRITE, 0, hdr[1].offset + hdr[1].size, nil);
 ptr := MapViewOfFile(map, FILE_MAP_WRITE + FILE_MAP_READ, 0, 0, 0);
 CopyMemory(ptr, @hdr, sizeof(hdr));
  CopyMemory(Pointer(Cardinal(ptr) + hdr[0].offset), content1, hdr[0].size);
  CopyMemory(Pointer(Cardinal(ptr) + hdr[1].offset), content2, hdr[1].size);
 UnmapViewOfFile(ptr);
  CloseHandle(map);
  CloseHandle(hfile1);

FreeMem(content1, SizeOf(content1));
FreeMem(content2, SizeOf(content2));
end;

end.


 
Andron.Ru ©   (2005-12-20 13:25) [1]

Это просто для сравнения кода сей и делфей... Нужен именно такой алгоритм



Страницы: 1 вся ветка

Текущий архив: 2006.01.22;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.025 c
2-1136469766
ArtemESC
2006-01-05 17:02
2006.01.22
Оттенки цветов...


8-1123418199
Nick Denry
2005-08-07 16:36
2006.01.22
Изменяющийся регион или скины как у Windows Media Player a


14-1135390869
SergP
2005-12-24 05:21
2006.01.22
посоветуйте компонент для построения графиков


2-1136467704
Seraphim
2006-01-05 16:28
2006.01.22
Взаимодействие Программ


14-1135639973
Пикселарт
2005-12-27 02:32
2006.01.22
Помогите подобрать ( нарисовать ) картиночки для кнопок ?