Показать сообщение отдельно
  #6  
Старый 26.07.2018, 21:44
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,004
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну вот прямо так и режешь:

Файл Music1.inc
Код:
const
   xm : array[0..130410] of byte = (
    $45, $78, $74, $65, $6E, $64, $65, $64, $20, $4D, $6F, $64, $75, $6C,
$45, $78, $74, $65, $6E, $64, $65, $64, $20, $4D, $6F, $64, $75, $6C,  
$45, $78, $74, $65, $6E, $64, $65, $64, $20, $4D, $6F, $64, $75, $6C,    
.....
.....   
.....  Куча  куча километровых данных
.....
.....
$45, $78, $74, $65, $6E, $64, $65, $64, $20, $4D, $6F, $64, $75, $6C,  
$45, $78, $74, $65, $6E, $64, $65, $64, $20, $4D, $6F, $64, $75, $6C,  
$03, $03, $03, $03, $03, $02, $03, $02, $03, $02, $02
);

В оригинальном исходнике:
Код:
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;

{$I Music1.inc}
 
implementation
 
{$R *.dfm}
//Подключаем файл импорта функций ufmod
{$I ufmod.inc *** uFMOD API (WINMM) }
procedure TForm1.Button1Click(Sender: TObject);
begin
 uFMOD_PlaySong(@xm,Length(xm),XM_MEMORY);
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
 uFMOD_StopSong;
end;
 
end.

Т.е., по сути, с точки зрения компилятора исходник остается точно таким же. Просто теперь препроцессор скомпонует его из 2х физических файлов, вставив .inc файл прямо вмето директивы включения.

ЗЫ. Для особо умных. я знаю, что у паскаля нет выделенного шага препроцессора, но так легче объяснить.
Ответить с цитированием