| 5 |  | uses Classes, Dialogs, StrUtils, SysUtils, Math, Data, OniImgClass; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 6 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 7 |  | procedure ExportDatFile(fileid: LongWord; filename: String); | 
 
 
 
 
 
 
 
 | 8 | + | procedure ExportRawFiles(fileid: LongWord; filename: String); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 9 |  | procedure ExportRawFile(fileid: LongWord; dat_offset: LongWord; filename: String); | 
 
 
 
 
 
 
 
 | 10 | + | function ExportConverted(fileid: LongWord; filename: String): Integer; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 11 |  |  | 
 
 
 
 
 
 
 
 
 
 
 | 12 | < | function ExportSNDD(fileid: LongWord; filename: String; convert: Boolean): Integer; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 13 | < | function ExportTRAC(fileid: LongWord; filename: String; convert: Boolean): Integer; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 14 | < | function ExportTXAN(fileid: LongWord; filename: String; convert: Boolean): Integer; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 15 | < | function ExportTXMB(fileid: LongWord; filename: String; convert: Boolean): Integer; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 16 | < | function ExportTXMP(fileid: LongWord; filename: String; convert: Boolean): Integer; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 17 | < |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 18 | < | var | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 19 | < | ExportHandlers: array[1..1] of TExportHandlers = ( | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 20 | < | //    (Ext:'ABNA'; needed:False), | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 21 | < | //(Ext:'AGDB'; needed:False), | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 22 | < | (Ext: 'SNDD'; needed: True; Handler: ExportSNDD) | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 23 | < | {    (Ext:'TRAC'; needed:True; Handler:ExportTRAC), | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 24 | < | (Ext:'TXAN'; needed:True; Handler:ExportTXAN), | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 25 | < | (Ext:'TXMB'; needed:True; Handler:ExportTXMB), | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 26 | < | (Ext:'TXMP'; needed:True; Handler:ExportTXMP) | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 25 | < | }); | 
 
 
 
 
 
 
 
 
 | 12 | > | function ExportSNDD(fileid: LongWord; filename: String): Integer; | 
 
 
 
 
 | 13 | > | function ExportTRAC(fileid: LongWord; filename: String): Integer; | 
 
 
 
 
 | 14 | > | function ExportTXAN(fileid: LongWord; filename: String): Integer; | 
 
 
 
 
 | 15 | > | function ExportImage(fileid: LongWord; filename: String): Integer; | 
 
 
 
 
 | 16 | > |  | 
 
 
 
 
 | 17 | > | var | 
 
 
 
 
 | 18 | > | ExportHandlers: array[1..3] of TExportHandlers = ( | 
 
 
 
 
 | 19 | > | //    (Ext:'ABNA'; needed:False), | 
 
 
 
 
 | 20 | > | //    (Ext:'AGDB'; needed:False), | 
 
 
 
 
 | 21 | > | (Ext: 'SNDD'; needed: True; Handler: ExportSNDD), | 
 
 
 
 
 | 22 | > | //    (Ext:'TRAC'; needed:True; Handler:ExportTRAC), | 
 
 
 
 
 | 23 | > | //    (Ext:'TXAN'; needed:True; Handler:ExportTXAN), | 
 
 
 
 
 | 24 | > | (Ext:'TXMB'; needed:True; Handler:ExportImage), | 
 
 
 
 
 | 25 | > | (Ext:'TXMP'; needed:True; Handler:ExportImage) | 
 
 
 
 
 | 26 | > | ); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 27 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 28 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 29 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 33 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 34 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 35 |  |  | 
 
 
 
 
 
 
 
 
 | 35 | – |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 36 |  | procedure ExportDatFile(fileid: LongWord; filename: String); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 37 |  | var | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 38 |  | filestream: TFileStream; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 53 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 54 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 55 |  |  | 
 
 
 
 
 
 
 
 
 
 
 | 56 | < |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 56 | > | procedure ExportRawFiles(fileid: LongWord; filename: String); | 
 
 
 
 
 | 57 | > | var | 
 
 
 
 
 | 58 | > | i: Integer; | 
 
 
 
 
 | 59 | > | rawlist: TRawList; | 
 
 
 
 
 | 60 | > | begin | 
 
 
 
 
 | 61 | > | rawlist := OniDataConnection.GetRawList(fileid); | 
 
 
 
 
 | 62 | > | if Length(rawlist) > 0 then | 
 
 
 
 
 | 63 | > | for i := 0 to High(rawlist) do | 
 
 
 
 
 | 64 | > | ExportRawFile(fileid, rawlist[i].src_offset, filename); | 
 
 
 
 
 | 65 | > | end; | 
 
 
 
 
 
 
 
 
 
 
 | 66 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 67 |  | procedure ExportRawFile(fileid: LongWord; dat_offset: LongWord; filename: String); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 68 |  | var | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 85 |  | filestream.Free; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 86 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 87 |  |  | 
 
 
 
 
 
 
 
 | 88 | + | function ExportConverted(fileid: LongWord; filename: String): Integer; | 
 
 
 
 
 
 
 
 | 89 | + | var | 
 
 
 
 
 
 
 
 | 90 | + | i: Integer; | 
 
 
 
 
 
 
 
 | 91 | + | fileinfo: TFileInfo; | 
 
 
 
 
 
 
 
 | 92 | + | begin | 
 
 
 
 
 
 
 
 | 93 | + | fileinfo := OniDataConnection.GetFileInfo(fileid); | 
 
 
 
 
 
 
 
 | 94 | + | if Length(ExportHandlers) > 0 then | 
 
 
 
 
 
 
 
 | 95 | + | for i := 0 to High(ExportHandlers) do | 
 
 
 
 
 
 
 
 | 96 | + | if ExportHandlers[i].Ext = fileinfo.Extension then | 
 
 
 
 
 
 
 
 | 97 | + | ExportHandlers[i].Handler(fileid, filename); | 
 
 
 
 
 
 
 
 | 98 | + | end; | 
 
 
 
 
 
 
 
 | 99 | + |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 100 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 101 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 102 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 103 |  | function ExportSNDD; | 
 
 
 
 
 
 
 
 
 
 
 | 104 | < | {  CONST | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 105 | < | WAVheader:Array[0..0] OF Byte=( | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 85 | < | Ord('R'),Ord('I'),Ord('F'),Ord('F'),0,0,0,0,Ord('W'),Ord('A'),Ord('V'),Ord('E'), | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 86 | < | Ord('f'),Ord('m'),Ord('t'),Ord(' '),24,0,0,0, | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 87 | < | ); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 88 | < | }  type | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 89 | < | TDatData = record | 
 
 
 
 
 
 
 
 
 | 104 | > | type | 
 
 
 
 
 | 105 | > | TDatData = packed record | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 106 |  | {0x00} | 
 
 
 
 
 
 
 
 
 
 
 | 107 | < | _fileid:   LongWord; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 108 | < | level:     LongWord; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 109 | < | Flag:      LongWord; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 110 | < | FormatTag: Word; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 111 | < | ChanNo:    Word; | 
 
 
 
 
 
 
 
 
 | 107 | > | _fileid:         LongWord; | 
 
 
 
 
 | 108 | > | level:           LongWord; | 
 
 
 
 
 | 109 | > | FormatSize:      LongWord; | 
 
 
 
 
 | 110 | > | AudioFormat:     Word; | 
 
 
 
 
 | 111 | > | NumChannels:     Word; | 
 
 
 
 
 
 
 
 
 
 
 | 112 |  | {0x10} | 
 
 
 
 
 
 
 
 
 
 
 | 113 | < | SampleRate: LongWord; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 114 | < | BytesPSec: LongWord; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 115 | < | BPSample:  LongWord; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 116 | < | BitsPS:    LongWord; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 117 | < | {0x20} | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 118 | < | Unknown:   array[1..7] of LongWord; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 119 | < | Unknown2:  Word; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 113 | > | SampleRate:      LongWord; | 
 
 
 
 
 | 114 | > | ByteRate:        LongWord; | 
 
 
 
 
 | 115 | > | BlockAlign:      Word; | 
 
 
 
 
 | 116 | > | BitsPerSample:   Word; | 
 
 
 
 
 | 117 | > | {0x1C} | 
 
 
 
 
 | 118 | > | SizeExtHeader:   Word; | 
 
 
 
 
 | 119 | > | SamplesPerBlock: Word; | 
 
 
 
 
 | 120 | > | NumCoefficients: Word; | 
 
 
 
 
 | 121 | > | Coefficients:    array[0..6] of LongWord; | 
 
 
 
 
 | 122 | > | {0x3E} | 
 
 
 
 
 | 123 | > | Duration:        Word; | 
 
 
 
 
 
 
 
 
 
 
 | 124 |  | {0x40} | 
 
 
 
 
 
 
 
 
 
 
 | 125 | < | RawSize:   LongWord; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 126 | < | RawPos:    LongWord; | 
 
 
 
 
 
 
 
 
 | 125 | > | RawSize:         LongWord; | 
 
 
 
 
 | 126 | > | RawPos:          LongWord; | 
 
 
 
 
 
 
 
 
 
 
 | 127 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 128 |  | var | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 129 |  | filestream: TFileStream; | 
 
 
 
 
 
 
 
 
 | 110 | – |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 130 |  | DatData:     TDatData; | 
 
 
 
 
 
 
 
 
 
 
 | 131 | < | //Wave Header Stuff | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 113 | < | ASCII_Group: LongWord; //"RIFF" | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 114 | < | WAV_Len:     LongWord; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 115 | < | ASCII_WAV:   LongWord; //"WAVE" | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 116 | < | ASCII_FMT:   LongWord; //"fmt " | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 117 | < | WAV_FMT_Len: LongWord; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 118 | < | ASCII_DATA:  LongWord; //"data" | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 119 | < | WAV_FolLen:  LongWord; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 120 | < |  | 
 
 
 
 
 
 
 
 
 | 131 | > | i: Integer; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 132 |  | Data: Tdata; | 
 
 
 
 
 
 
 
 | 133 | + |  | 
 
 
 
 
 
 
 
 | 134 | + | //Wave Header Stuff | 
 
 
 
 
 
 
 
 | 135 | + | ASCII_RIFF:   LongWord; //"RIFF" | 
 
 
 
 
 
 
 
 | 136 | + | WAVE_Len:     LongWord; | 
 
 
 
 
 
 
 
 | 137 | + | ASCII_WAVE:   LongWord; //"WAVE" | 
 
 
 
 
 
 
 
 | 138 | + | ASCII_FMT:    LongWord; //"fmt " | 
 
 
 
 
 
 
 
 | 139 | + | WAVE_FMT_Len: LongWord; | 
 
 
 
 
 
 
 
 | 140 | + | ASCII_DATA:   LongWord; //"data" | 
 
 
 
 
 
 
 
 | 141 | + | WAVE_DataLen:  LongWord; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 142 |  | begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 143 |  | Result := export_noerror; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 144 |  | OniDataConnection.LoadDatFilePart(fileid, 0, SizeOf(DatData), @DatData); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 145 |  | with DatData do | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 146 |  | begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 147 |  | //Initializing Header vars | 
 
 
 
 
 
 
 
 
 
 
 | 148 | < | ASCII_Group := 1179011410; // 'RIFF' | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 149 | < | WAV_Len     := RAWSize + 70; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 150 | < | ASCII_WAV   := 1163280727;  // 'WAVE' | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 151 | < | ASCII_FMT   := 544501094;   // 'fmt ' | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 152 | < | WAV_FMT_Len := 50;          // 50 bytes | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 153 | < | ASCII_DATA  := 1635017060;  // 'data' | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 154 | < | WAV_FolLen  := RAWSize; | 
 
 
 
 
 
 
 
 
 | 148 | > | ASCII_RIFF   := 1179011410; // 'RIFF' | 
 
 
 
 
 | 149 | > | WAVE_Len     := RAWSize + 70; | 
 
 
 
 
 | 150 | > | ASCII_WAVE   := 1163280727;  // 'WAVE' | 
 
 
 
 
 | 151 | > | ASCII_FMT    := 544501094;   // 'fmt ' | 
 
 
 
 
 | 152 | > | WAVE_FMT_Len := 50;          // 50 bytes | 
 
 
 
 
 | 153 | > | ASCII_DATA   := 1635017060;  // 'data' | 
 
 
 
 
 | 154 | > | WAVE_DataLen := RAWSize; | 
 
 
 
 
 
 
 
 
 
 
 | 155 |  | SetLength(Data, RAWSize); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 156 |  | OniDataConnection.LoadRawFile(fileid, $44, Data); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 157 |  |  | 
 
 
 
 
 
 
 
 
 
 
 | 158 | < | filestream := TFileStream.Create(filename + '.raw', fmCreate); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 158 | > | //Now start packing this into a neat wave... | 
 
 
 
 
 | 159 | > | filestream := TFileStream.Create(filename + '.wav', fmCreate); | 
 
 
 
 
 | 160 | > | filestream.Write(ASCII_RIFF, SizeOf(ASCII_RIFF)); | 
 
 
 
 
 | 161 | > | filestream.Write(WAVE_Len, SizeOf(WAVE_Len)); | 
 
 
 
 
 | 162 | > | filestream.Write(ASCII_WAVE, SizeOf(ASCII_WAVE)); | 
 
 
 
 
 | 163 | > | filestream.Write(ASCII_FMT, SizeOf(ASCII_FMT)); | 
 
 
 
 
 | 164 | > | filestream.Write(WAVE_FMT_Len, SizeOf(WAVE_FMT_Len)); | 
 
 
 
 
 | 165 | > | filestream.Write(AudioFormat, SizeOf(AudioFormat)); | 
 
 
 
 
 | 166 | > | filestream.Write(NumChannels, SizeOf(NumChannels)); | 
 
 
 
 
 | 167 | > | filestream.Write(Samplerate, SizeOf(Samplerate)); | 
 
 
 
 
 | 168 | > | filestream.Write(ByteRate, SizeOf(ByteRate)); | 
 
 
 
 
 | 169 | > | filestream.Write(BlockAlign, SizeOf(BlockAlign)); | 
 
 
 
 
 | 170 | > | filestream.Write(BitsPerSample, SizeOf(BitsPerSample)); | 
 
 
 
 
 | 171 | > | filestream.Write(SizeExtHeader, SizeOf(SizeExtHeader)); | 
 
 
 
 
 | 172 | > | filestream.Write(SamplesPerBlock, SizeOf(SamplesPerBlock)); | 
 
 
 
 
 | 173 | > | filestream.Write(NumCoefficients, SizeOf(NumCoefficients)); | 
 
 
 
 
 | 174 | > | for i := 0 to High(Coefficients) do | 
 
 
 
 
 | 175 | > | filestream.Write(Coefficients[i], SizeOf(Coefficients[i])); | 
 
 
 
 
 | 176 | > | filestream.Write(ASCII_DATA, SizeOf(ASCII_DATA)); | 
 
 
 
 
 | 177 | > | filestream.Write(WAVE_DataLen, SizeOf(WAVE_DataLen)); | 
 
 
 
 
 
 
 
 
 
 
 | 178 |  | filestream.Write(Data[0], Length(Data)); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 179 |  | filestream.Free; | 
 
 
 
 
 
 
 
 
 | 141 | – |  | 
 
 
 
 
 
 
 
 
 | 142 | – | if convert then | 
 
 
 
 
 
 
 
 
 | 143 | – | begin | 
 
 
 
 
 
 
 
 
 | 144 | – | //Now start packing this into a neat wave... | 
 
 
 
 
 
 
 
 
 | 145 | – | filestream := TFileStream.Create(filename + '.wav', fmCreate); | 
 
 
 
 
 
 
 
 
 | 146 | – | filestream.Write(ASCII_Group, SizeOf(ASCII_Group)); | 
 
 
 
 
 
 
 
 
 | 147 | – | filestream.Write(WAV_Len, SizeOf(WAV_Len)); | 
 
 
 
 
 
 
 
 
 | 148 | – | filestream.Write(ASCII_WAV, SizeOf(ASCII_WAV)); | 
 
 
 
 
 
 
 
 
 | 149 | – | filestream.Write(ASCII_FMT, SizeOf(ASCII_FMT)); | 
 
 
 
 
 
 
 
 
 | 150 | – | filestream.Write(WAV_FMT_Len, SizeOf(WAV_FMT_Len)); | 
 
 
 
 
 
 
 
 
 | 151 | – | filestream.Write(ChanNo, SizeOf(ChanNo)); | 
 
 
 
 
 
 
 
 
 | 152 | – | filestream.Write(Samplerate, SizeOf(Samplerate)); | 
 
 
 
 
 
 
 
 
 | 153 | – | filestream.Write(BytesPSec, SizeOf(BytesPSec)); | 
 
 
 
 
 
 
 
 
 | 154 | – | filestream.Write(BPSample, SizeOf(BPSample)); | 
 
 
 
 
 
 
 
 
 | 155 | – | filestream.Write(BitsPS, SizeOf(BitsPS)); | 
 
 
 
 
 
 
 
 
 | 156 | – | filestream.Write(Unknown[1], SizeOf(Unknown)); | 
 
 
 
 
 
 
 
 
 | 157 | – | filestream.Write(Unknown2, SizeOf(Unknown2)); | 
 
 
 
 
 
 
 
 
 | 158 | – | filestream.Write(ASCII_DATA, SizeOf(ASCII_DATA)); | 
 
 
 
 
 
 
 
 
 | 159 | – | filestream.Write(WAV_FolLen, SizeOf(WAV_FolLen)); | 
 
 
 
 
 
 
 
 
 | 160 | – | filestream.Write(Data[0], Length(Data)); | 
 
 
 
 
 
 
 
 
 | 161 | – | filestream.Free; | 
 
 
 
 
 
 
 
 
 | 162 | – | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 180 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 181 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 182 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 230 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 231 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 232 |  |  | 
 
 
 
 
 
 
 
 
 
 
 | 233 | < | function ExportTXMB; | 
 
 
 
 
 
 
 
 
 | 233 | > | function ExportImage; | 
 
 
 
 
 
 
 
 
 
 
 | 234 |  | var | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 235 |  | filestream: TFileStream; | 
 
 
 
 
 
 
 
 
 
 
 | 236 | < | //    img:TImgPackage; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 237 | < | Data: Tdata; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 221 | < | begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 222 | < | Result := export_noerror; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 223 | < | if convert then | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 224 | < | begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 225 | < | {      img:=LoadTXMBconnected(fileid); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 226 | < | data:=ImgdataToBmp(img.imgx,img.imgy,img.imgdepth,img.storetype,img.imgdata); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 227 | < | filestream:=TFileStream.Create(filename+'.bmp',fmCreate); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 228 | < | filestream.Write(data[0],Length(data)); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 229 | < | filestream.Free; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 230 | < | }    end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 231 | < | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 232 | < |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 233 | < |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 234 | < |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 235 | < |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 236 | < | function ExportTXMP; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 237 | < | var | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 238 | < | filestream: TFileStream; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 239 | < | //    img:TImgPackage; | 
 
 
 
 
 
 
 
 
 | 236 | > | img: TOniImage; | 
 
 
 
 
 | 237 | > | data: Tdata; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 238 |  | begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 239 |  | Result := export_noerror; | 
 
 
 
 
 
 
 
 
 | 242 | – | {    img:=LoadImgData(fileid); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 240 |  |  | 
 
 
 
 
 
 
 
 
 
 
 | 241 | < | filestream:=TFileStream.Create(filename+'.raw',fmCreate); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 242 | < | filestream.Write(img.imgdata[0],Length(img.imgdata)); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 243 | < | filestream.Free; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 241 | > | img := TOniImage.Create; | 
 
 
 
 
 | 242 | > | img.Load(fileid); | 
 
 
 
 
 | 243 | > | data := img.GetAsBMP; | 
 
 
 
 
 | 244 | > | img.Free; | 
 
 
 
 
 
 
 
 
 
 
 | 245 |  |  | 
 
 
 
 
 
 
 
 
 
 
 | 246 | < | IF convert THEN BEGIN | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 247 | < | img.imgdata:=ImgdataToBMP(img.imgx,img.imgy,img.imgdepth,img.storetype,img.imgdata); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 248 | < | filestream:=TFileStream.Create(filename+'.bmp',fmCreate); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 249 | < | filestream.Write(img.imgdata[0],Length(img.imgdata)); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 252 | < | filestream.Free; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 253 | < | END; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 254 | < | }  end; | 
 
 
 
 
 
 
 
 
 | 246 | > | filestream:=TFileStream.Create(filename+'.bmp',fmCreate); | 
 
 
 
 
 | 247 | > | filestream.Write(data[0],Length(data)); | 
 
 
 
 
 | 248 | > | filestream.Free; | 
 
 
 
 
 | 249 | > | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 250 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 251 |  | end. |