Показать сообщение отдельно
  #9  
Старый 29.07.2018, 13:18
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Каждый формат треккерной музыки имеет свои сигнатуры, вот по ним поиск и нужно вести в екзешнике, но правда, не всегда крякалки содержат мелодии не всжатом виде, когда-то тоже пытался выдирать их оттудова, часто не получалось, они были под компрессором, а без алгоритма сжатия что-то вытащить невозможно. Вот процедура что "записывает" пестни текстом в *.pas
Код:
procedure Track2Pas(trcNm, pasNm: string);
var
 f: file;
 txt: text;
 b,c: byte;
 s: string;
begin
 AssignFile(f, trcNm);
 {$I-} Reset(f, 1); {$I+}
 if IOResult = 0 then
  begin
   AssignFile(txt, pasNm + '.pas');
   {$I-} Rewrite(txt); {$I+}
   if IOResult = 0 then
    begin
     Writeln(txt,'unit ' + pasNm + ';');
     Writeln(txt, 'interface');
     Write(txt, 'const  xm: array[1..', FileSize(f),'] of byte = (');
     c:= 0;
     while not EOF(f) do
      begin
       BlockRead(f,B,1);
       Str(b, s);
       if FileSize(f) <> FilePos(f) then s:= s + ',';
       c:= c + length(s);
    Write(txt, s);
    if C > 40 then
     begin
     if FileSize(f) <> FilePos(f) then
     begin
      Writeln(txt);
      Write(txt,'                                             ');
     end;
     C:= 0;
    end;
   end;
   Writeln(txt, ');');
   Writeln(txt, 'implementation');
   Writeln(txt, 'end.');
   CloseFile(txt);
  end;
  CloseFile(f);
 end;
  end;
вдруг подойдет, хотя это и лишне, поскольку сабжевая библиотека может играть просто файл, без преобразований
Ответить с цитированием