122 lines
3.1 KiB
Plaintext
122 lines
3.1 KiB
Plaintext
IMPORT os
|
|
IMPORT security
|
|
|
|
FUNCTION ver_archivo(fname)
|
|
|
|
DEFINE fr_end STRING,
|
|
fname STRING,
|
|
lname STRING,
|
|
dname STRING,
|
|
d_dir STRING,
|
|
m_err STRING
|
|
|
|
LET fr_end=ui.Interface.getFrontEndName()
|
|
|
|
LET fname=get_local_path(fname)
|
|
|
|
IF os.Path.exists(fname) THEN
|
|
LET m_err=SFMT("Archivo %1 recibido",fname)
|
|
# CALL fgl_winMessage("Debug",m_err,"information")
|
|
ELSE
|
|
LET m_err=SFMT(%"No existe el archivo %1", fname)
|
|
CALL fgl_winmessage("Error",m_err,"stop")
|
|
RETURN
|
|
END IF
|
|
|
|
IF fr_end="GDC" THEN
|
|
CALL open_file_with_app(fr_end,fname)
|
|
ELSE
|
|
LET lname=os.path.basename(fname)
|
|
IF fr_end="GMI" OR fr_end="GMA" THEN
|
|
CALL ui.interface.frontcall("standard", "feinfo", ["datadirectory"], [d_dir])
|
|
IF d_dir.getCharAt(d_dir.getLength())=="/" THEN
|
|
LET dname=d_dir,lname
|
|
ELSE
|
|
LET dname=d_dir,"/",lname
|
|
END IF
|
|
ELSE
|
|
LET dname=lname
|
|
END IF
|
|
CALL fgl_putfile(fname,dname)
|
|
IF fr_end="GMI" OR fr_end="GMA" THEN
|
|
CALL open_file_with_app(fr_end,dname)
|
|
END IF
|
|
END IF
|
|
|
|
END FUNCTION
|
|
|
|
PRIVATE FUNCTION get_local_path(f)
|
|
|
|
DEFINE x base.StringBuffer
|
|
DEFINE f STRING
|
|
|
|
LET f=base.Application.getProgramDir(),f CLIPPED
|
|
|
|
LET x=base.StringBuffer.create()
|
|
CALL x.append(f)
|
|
|
|
CALL x.replace("\\","/",0)
|
|
|
|
RETURN x.toString()
|
|
|
|
END FUNCTION
|
|
|
|
PRIVATE FUNCTION open_file_with_app(fr_end,f_name)
|
|
|
|
DEFINE fr_end STRING
|
|
DEFINE f_name STRING
|
|
DEFINE s_cmd STRING
|
|
DEFINE m_err STRING
|
|
DEFINE ret INTEGER
|
|
|
|
IF fr_end="GDC" THEN
|
|
LET s_cmd="shellexec"
|
|
ELSE
|
|
LET s_cmd="launchurl"
|
|
LET f_name="file://",f_name
|
|
END IF
|
|
|
|
LET m_err=SFMT(%"Abriendo el archivo %1 con %2 en %3", f_name, s_cmd, fr_end)
|
|
# CALL fgl_winmessage("Debug",m_err,"information")
|
|
|
|
CALL ui.Interface.frontCall("standard",s_cmd,[f_name],[ret])
|
|
|
|
END FUNCTION
|
|
|
|
FUNCTION check_create_folder(dir)
|
|
|
|
DEFINE dir STRING
|
|
DEFINE msg STRING
|
|
DEFINE ret BOOLEAN
|
|
|
|
CALL os.Path.exists(dir) RETURNING ret
|
|
|
|
IF ret THEN
|
|
LET msg=SFMT(%"Folder %1 already exists",dir)
|
|
# CALL fgl_winmessage("Debug",msg,"information")
|
|
ELSE
|
|
-- creates the folder
|
|
CALL os.Path.mkdir(dir) RETURNING ret
|
|
END IF
|
|
|
|
IF NOT(ret) THEN
|
|
LET msg=SFMT(%"Unable to create folder %1",dir)
|
|
CALL fgl_winmessage("Error",msg,"stop")
|
|
EXIT PROGRAM
|
|
END IF
|
|
|
|
END FUNCTION
|
|
|
|
FUNCTION b64_to_file(str_b64,f_sal)
|
|
|
|
DEFINE f_sal,str_b64,str_aux STRING
|
|
|
|
TRY
|
|
CALL security.Base64.SaveBinary(f_sal,str_b64)
|
|
CATCH
|
|
LET str_aux="Unable to convert Base64 String to file :",STATUS
|
|
CALL fgl_winmessage("Error",str_aux,"stop")
|
|
END TRY
|
|
|
|
END FUNCTION
|