Интегрирование в EXE-шник других файловDelphi , Программа и Интерфейс , EXE файлИнтегрирование в EXE-шник других файлов
Автор: Delirium { **** UBPFD *********** by delphibase.endimus.com **** >> Интегрирование в 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; Перевод контента на русский язык: Это программное обеспечение Delphi, которое интегрирует другие файлы в файл EXE. Программа читает указанный файл (FileName) и генерирует модуль на языке Pascal, содержащий байтовый массив, заполненный содержимым оригинального файла, а также процедуру для сохранения этого массива обратно в файл. Распределение кода:
Цель этой программы - интегрировать другие файлы в файл EXE, конвертируя их в модули Pascal, которые затем могут быть скомпилированы в единый исполняемый файл. Этот подход позволяет эффективно распространять множество файлов в одном пакете. Некоторые предложения по улучшению кода:
В целом, это программное обеспечение предоставляет полезный механизм для интеграции множества файлов в единый исполняемый файл, который может быть полезен в различных сценариях, включая распространение и развертывание программного обеспечения. В статье описана процедура для интеграции файлов в EXE-шник, позволяющая включить в один файл множество других файлов (DLL, OCX, DBF и т.д.) как unit-ы. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |