Главная | Форум | Статьи | Фaйлы| Картинки WoW | Профиль | Регистрация | Вход

[ Новые сообщения · Правила форума · Поиск · RSS ]

WoW-Info — информационный World of Warcraft портал

Интегрирование в EXE-шник других файлов - Форум

  • Сторінка 1 з 1
  • 1
Интегрирование в EXE-шник других файлов
ШайтанДата: Середа, 05.01.2011, 06:34 | Сообщение # 1



Шайтан
†HellWoW-Pristton†
Чемпион
Группа: Пользователи
Сообщений: 440

Замечания:

Оффлайн
>> Интегрирование в EXE-шник других файлов

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

Зависимости: SysUtils, System
Автор: Rive[R]a

Дата: 30 сентября 2010 г.
***************************************************** }

Code
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;


 
  • Сторінка 1 з 1
  • 1
Пошук:

Новые сообщения в темах
Сдам в аренду сервер и хостинг · (Хост Предложения)
Автор: redlaine
Последнее сообщение в 23:53
хаха :D · (Приколы)
Автор: [N1ke]Medved
Последнее сообщение в 18:40
Autobattle - новый боевой бот ... · (Боты для WoW)
Автор: terrikon
Последнее сообщение в 18:39
PvE руководство для Чернокнижн... · (Чернокнижник)
Автор: Darkensand
Последнее сообщение в 18:38
Пустой свиток (Часть 11) · (Истории WoW)
Автор: R_a_Z_o_R
Последнее сообщение в 18:37
Друиды в Катаклизме: Официальн... · (Друид)
Автор: Darkensand
Последнее сообщение в 18:37
[Баг 3.3.5] Фарм ледяных бадже... · (Читы для WoW)
Автор: Darkensand
Последнее сообщение в 18:35
FarmBot (Бот для фарма руды и ... · (Боты для WoW)
Автор: homma
Последнее сообщение в 18:34
Почему мы сражаемся: ролевая и... · (Воин)
Автор: Darkensand
Последнее сообщение в 18:34
Книги по Wold of Warcraft · (Истории WoW)
Автор: R_a_Z_o_R
Последнее сообщение в 18:33
Маг огня в Cataclysm · (Маг)
Автор: Darkensand
Последнее сообщение в 18:33
Как начать играть в World of W... · (Полезно знать)
Автор: Belkmondesh
Последнее сообщение в 18:32
Характеризация профессий · (Профессии)
Автор: Darkensand
Последнее сообщение в 18:31
Что значит для арканов бета те... · (Маг)
Автор: Darkensand
Последнее сообщение в 18:31

Контакты Контакты Copyright WoW-Info — World of Warcraft портал © 2025 | Условия и правила использования ресурса | Реклама / Услуги
WoW-Info портал.World of Warcraft портал — готовые сервера, сайты, картинки, аддоны, патчи, читы, баги, mangos, ArcEmu, TrinityCore, Warcraft 3, новости, Cataclysm...
Яндекс.Метрика Хостинг від uCoz