![[Toc]](../../toc.gif)
![[Index]](/idx.gif)
Template for an installation program
/* ------------------------------------------------------------------ */
/* INSTALL.CMD */
/* */
/* function: sample template for writing an self-extracting */
/* installation program including binary data, e.g. */
/* an EXE file, a ZIP file or simply an icon */
/* */
/* */
/* usage: install.cmd */
/* */
/* */
/* parameters: - */
/* */
/* history: 21.06.2003 first release */
/* */
/* */
/* notes: This is only a template! */
/* You must replace the neccessary data at the end of */
/* this file and add the neccessary code below for your */
/* program */
/* */
/* The code to decode base64 is from Yury Pogrebnyak */
/* (see EMail Addresses) */
/* */
/* This example uses the format base64 to convert the */
/* data. You may use */
/* base64 encoder */
/* to convert your file to base64 format. */
/* */
/* (c) 2003 Bernd Schemmer, Germany, EMail: Bernd.Schemmer@gmx.de */
/* ------------------------------------------------------------------ */
/* name of the file to create */
/* you may use the routine Get a name for a temporary file to get the */
/* name for a temporary file */
outFile = ".\which.exe"
/* now create the temporary file from the encoded data at the end of */
/* this program */
thisRC = CreateTemporaryFile( outFile )
/* now you can do anything you want :-) with the created binary file */
/* In this case we just call it whithout parameters */
say 'Now calling the created file "' || outFile || '" ...'
'@cmd /c ' outFile
exit 0
/* ------------------------------------------------------------------ */
/* This subroutine converts the base64 coded data at the end of this */
/* program between the lines DATA STARTS and DATA ENDS to the binary */
/* original format */
CreateTemporaryFile: PROCEDURE
parse arg outFile
parse source . . thisProg
inFile = fileSpec( 'N', thisProg )
filelength = chars( inFile )
call stream inFile,'c','open read'
filecontents = charin( infile, 1, filelength )
call stream inFile,'c','close'
/* the start and end marker are in hexadecimal format so that the */
/* routine does not find this parse command */
parse var filecontents '2F2A204441544120535441525453'x i64 '4441544120454E4453202A2F'x
i64 = translate(i64,'0000'x,'0d0a'x)
d_code = xrange('0'x,'3f'x) ; s_code = xrange('A','Z')||xrange('a','z')||'0123456789+/'
ji = 1 ; ic = ''
call pos '0'x,i64
do while result \= 0
tmp_s = ''
if result > ji then
tmp_s = x2b(c2x(translate(substr(i64,ji,result-ji),d_code,s_code)))
ji = result+1
do while tmp_s \= ''
parse var tmp_s +2 ic.0 +6 +2 ic.1 +6 +2 ic.2 +6 +2 ic.3 +6 +2 ic.4 +6 +2 ic.5 +6 ,
+2 ic.6 +6 +2 ic.7 +6 +2 ic.8 +6 +2 ic.9 +6 +2 ic.10 +6 +2 ic.11 +6 tmp_s
result = ic.0||ic.1||ic.2||ic.3||ic.4||ic.5||ic.6||ic.7||ic.8||ic.9||ic.10||ic.11
if result \= '' then
ic = ic||x2c(b2x(left(result,length(result)%8*8)))
end
call pos '0'x,i64,ji
end
call charout outFile, ic
call stream outFile,'c','close'
return result
/* ------------------------------------------------------------------ */
/* here comes the data */
/* Put the encoded data between the lines with DATA STARTS and */
/* DATA ENDS. */
/* Note: The surrounding comment is necessary for Object REXX. */
/* DATA STARTS
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
TehoR4pbh1NpSVs8AAA
DATA ENDS */
Created using Inf-PHP v.2 (c) 2003 Yuri Prokushev
Created using Inf-HTML v.0.9b (c) 1995 Peter Childs