View Raw SPL
/* multiredb */
rmbfname(fname)
{
        local orgname, fn;

        /* set default name to appear in dialog box */
        if (argc > 0)
        {
                /* use input filename */
                setvar("_rmbfname", fname);
                setvar("_rmbpickdir", strrev(strfind(pathchar, strrev(_rmbfname))));
        }
        else
        {
                /* just define the variable */
                defvar("_rmbfname", "");
        }

        /* define start directory if it doesn't already exist */
        defvar("_rmbpickdir", "");

        /* define numser if it doesn't already exist */
        defvar("_rmbnumser", "1");

        /* define datatype if it doesn't already exist */
        defvar("_rmbdtype", "SINT");

        /* define offset if it doesn't already exist */
        defvar("_rmboffset", "0");

        /* define byteswap if it doesn't already exist */
        defvar("_rmbswap", 0);

        /* _pickfile_status == 1 if dialog was successful */
        setvar("_pickfile_status", 0);

        /* remember original name */
        orgname = _rmbfname;

        /* invoke dialog box */
        _mf("mreadb.pan");

        if (_pickfile_status == 1)   /* dialog was successful */
        {
                /* remember default directory */
                setvar("_rmbpickdir", strrev(strfind(pathchar, strrev(_rmbfname))));
                if (strlen(_rmbfname) > 0)
                {
                        fn = sprintf('"%s"', _rmbfname);
                        if (setwfmode > 0)
                        {
                                eval(sprintf("setwf('Multireadb(%s, %s, %s, 1, %s, %d, %s)')", fn, _rmbdtype, _rmbnumser, _rmboffset, _rmbswap, _dwin));
                        }
                        else
                        {
                                eval(sprintf('Multireadb(%s, %s, %s, 1, %s, %d, %s)', fn, _rmbdtype, _rmbnumser, _rmboffset, _rmbswap, _dwin));
                        }
                }
        }
        else
        {
                /* reset to original name */
                setvar("_rmbfname", orgname);
        }
}