Архив исходников программ, модулей и компонентов на Delphi


Начальная страница

Поиск по базе



Операционная система
Настройка приложения
Взаимодействия приложений
Файлы и директории
Строки и символы
Математика
Базы данных
Интернет и сеть
Мультимедиа
Аппаратная часть
VCL
Другие разделы [0]
 

Количество записей в базе - 537
Сегодня добавлено – 0

Ресурсы приложения



Вернуться к списку функций
 Интегрирование в EXE-шник других файлов

 Прислал: Delirium ( 22 мая 2002 г. )
©  Delirium (Master BRAIN)
 Описание:
Процедура из указанного файла (FileName) создаёт unit в котором объявлен, заполненный побайтово, массив и процедура сохранения этого массива обратно в файл. Таким образом можно включить в один EXE-шник множество других файлов (dll, ocx, dbf и т.п.) - прикрепить их как unit-ы. Фактически, после сжатия EXE-шника программами типа UPX, получаем довольно компактный файл, который можно использовать в качестве дистрибутива, например.

 Зависимости:
SysUtils, System

 Исходный текст:
{ **** UBPFD *********** by http://kladovka.net.ru/delphibase/ ****
>> Интегрирование в EXE-шник других файлов

Процедура из указанного файла (FileName) создаёт unit в котором объявлен, заполненный побайтово, массив и процедура сохранения этого массива обратно в файл. Таким образом можно включить в один EXE-шник множество других файлов (dll, ocx, dbf и т.п.) - прикрепить их как unit-ы. Фактически, после сжатия EXE-шника программами типа UPX, получаем довольно компактный файл, который можно использовать в качестве дистрибутива, например.

Зависимости: SysUtils, System
Автор:       Delirium
Copyright:   Delirium (Master BRAIN)
Дата:        22 мая 2002 г.
***************************************************************** }

procedure FileToPas(FileName:String);
var BF:File of Byte;
    F:TextFile;
    P,N,S:String;
    BFSize:integer;
    BBB:Byte;
begin
AssignFile(BF,FileName);
Reset(BF);
BFSize:=FileSize(BF);
P:=ExtractFilePath(FileName);
N:=ExtractFileName(FileName);
N:=ChangeFileExt(N,'.PAS');
AssignFile(F,N);
ReWrite(F);
Writeln(F,'(* Generated by Master BRAIN (C) 2002 *)');
Writeln(F,'unit '+ChangeFileExt(N,'')+';');
Writeln(F);
Writeln(F,'interface');
Writeln(F);
Writeln(F,'const FileSize:integer='+IntToStr(BFSize)+';');
Writeln(F,'FileData:array[0..'+IntToStr(BFSize-1)+'] of Byte=');
Writeln(F,'(');
while not Eof(BF) do
 begin
 S:='';
 while (not Eof(BF)) and (Length(S)<80) do
  begin
  Read(BF,BBB);
  S:=S+IntToStr(BBB)+',';
  end;
 if Eof(BF) then Delete(S,Length(S),1);
 Writeln(F,S);
 end;
CloseFile(BF);
Writeln(F,');');
Writeln(F);
Writeln(F,'procedure SaveToFile(FileName:String);');
Writeln(F);
Writeln(F,'implementation');
Writeln(F);
Writeln(F,'procedure SaveToFile(FileName:String);');
Writeln(F,'var F:File of Byte;');
Writeln(F,' i:integer;');
Writeln(F,'begin');
Writeln(F,'AssignFile(F,FileName);');
Writeln(F,'ReWrite(F);');
Writeln(F,'for i:=0 to FileSize-1 do Write(F,FileData[i]);');
Writeln(F,'CloseFile(F);');
Writeln(F,'end;');
Writeln(F);
Writeln(F,'end.');
CloseFile(F);
end;


Вернуться к списку функций

Наверх ▲