View Raw SPL
rbfname(fname)
{
local orgname, fn;
/* set default name to appear in dialog box */
if (argc > 0)
{
/* use input filename */
setvar("_rbfname", fname);
setvar("_rbpickdir", strrev(strfind(pathchar, strrev(_rbfname))));
}
else
{
/* just define the variable */
defvar("_rbfname", "");
}
/* define start directory if it doesn't already exist */
defvar("_rbpickdir", "");
/* define numpts if it doesn't already exist */
defvar("_rbnumpts", "-1");
/* define offset if it doesn't already exist */
defvar("_rboffset", 0);
/* define datatype if it doesn't already exist */
defvar("_rbdtype", "SINT");
/* define byteswap if it doesn't already exist */
defvar("_rbswap", 0);
/* _pickfile_status == 1 if dialog was successful */
setvar("_pickfile_status", 0);
/* remember original name */
orgname = _rbfname;
/* invoke dialog box */
_mf("readb.pan");
if (_pickfile_status == 1) /* dialog was successful */
{
/* remember default directory */
setvar("_rbpickdir", strrev(strfind(pathchar, strrev(_rbfname))));
if (strlen(_rbfname) > 0)
{
fn = sprintf('"%s"', _rbfname);
if (_rbnumpts == "-1" && _rboffset == 0 && _rbswap == 0)
{
/* short form */
eval(sprintf("setwf(%s, 'Readb(%s, %s)')", _dwin, fn, _rbdtype));
}
else
{
/* long form */
eval(sprintf("setwf(%s, 'Readb(%s, %s, %s, %d, %d)')", _dwin, fn, _rbdtype, _rbnumpts, _rboffset, _rbswap));
}
}
}
else
{
/* reset to original name */
if (strlen(orgname) > 0)
{
setvar("_rbfname", orgname);
}
}
}