Função: FileDialog
Descrição
Esta função disponibiliza uma interface para seleção e/ou localização de arquivo.
Sintaxe da função :
bool flag_selected, string dir_selected = FileDialog(
number opc_dialog,
string title,
string file_ext,
string initial_dir,
string initial_file,
string filter_list,
number filter_index)
Parâmetros de entrada
Notificação de Informação |
|
opc_dialog |
Opção de dialogo para a interface de seleção de arquivo, onde:
|
title |
Titulo para a janela de solicitação de seleção de arquivo. Exemplo : “Selecione arquivos de configuração” |
file_ext |
Extensão padrão para os arquivos a serem selecionados, sem considerar o separador “.” para a extensão. Exemplo : “txt” |
initial_dir |
Diretório inicial onde será apresentado para o usuário selecionar o arquivo. O caracter de divisão de pastas deve ser “\”. Exemplo : “C:\Dados\Configuração” |
initial_file |
Nome do arquivo que será apresentado como opção inicial para o usuário selecionar. Se não existir arquivo inicial deve-se especificar uma string nula Exemplo : “Dados.Cfg”, “” (string nula, sem arquivo inicial) |
filter_list |
Lista com os filtros para seleção dos arquivos. Exemplo : “Arquivos configuração [.txt]|.txt” |
filter_filter |
Número do filtro de seleção inicial, caso exista mais de um filtro para seleção dos arquivos, sendo que o primeiro filtro possui o índice 1. |
Extensão padrão dos arquivos:
Devem ser especificadas sem o separador “.” da extensão. São exemplos de extensão de arquivos :
“TXT”
“CFG”
“DAT”
“REC”
Filtro para seleção dos arquivos:
Os filtros possuem o seguinte formato : “Texto Explicativo | Filtro”
Onde :
Texto Explicativo : Texto explicativo sobre os tipos de arquivos filtrados
| : Separador entre o “Texto Explicativo” e o “Filtro”
Filtro : Especificação do filtro para os arquivos desejados.
São exemplos de filtros de arquivos :
“Text files (*.txt) | *.TXT”
“Todos os arquivos (*.*) | *.*”
“Arquivos de dados (*.dat) | *.dat”
“Receitas de tingimento (*.rec) | *.rec”
“Arquivos configuração | *.cfg;*.rec;*.dat”
Para especificar mais de um tipo de filtro, deve-se separar os vários filtros por um separador “|”. Por exemplo :
“Text files (*.txt) | *.TXT | Todos os arquivos (*.*) | *.*”
“Arquivos Configuração [*.cfg] | *.cfg|Arquivos HSC [*.hsc] | *.hsc|Todos Arquivos (*.*) | *.*”
“Arquivos dados [*.dat] | *.dat | Todos Arquivos (*.*) | *.*”
Parâmetros de saida
String resultante com o caminho completo do arquivo selecionado pelo usuário. Se o usuário cancelar a seleção do arquivo , a função retorna uma string nula.
Notificação de Informação |
|
|
|
dir_selected |
String resultante com o caminho completo do arquivo selecionado pelo usuário. Se o usuário cancelar a seleção do arquivo, a função retorna uma string nula |
Exemplo de utilização
Exemplo de utilização para selecionar um arquivo com função “OPEN”:
fig. Exemplo de Interface para selecionar um arquivo para abrir
-- --------------------------------------------------------------------
-- Exemplo1 : FileDialog para selecionar um arquivo para ABRIR
-- --------------------------------------------------------------------
function exemplo1()
-- solicita seleção de arquivo
local flag_selected, file_path = FileDialog(1, "Selecione arquivo de configuração", "", "", "", "", 0);
return flag_selected, file_path
end
-- --------------------------------------------------------------------
-- Exemplo: FileDialog para selecionar um arquivo para ABRIR
-- --------------------------------------------------------------------
function exemplo2()
-- solicita seleção de arquivo
local file = FileDialog(1, "Selecione arquivos de configuração", "cfg",
"C:\\Dados\\Configuracao", "dados.cfg", "Arquivos CONFIGURACAO [*.cfg]|*.cfg", 1);
return file
end
-- --------------------------------------------------------------------
-- Exemplo: FileDialog para selecionar um arquivo para ABRIR
-- --------------------------------------------------------------------
function exemplo3()
-- monta lista de filtros para seleção dos arquivos
local f1 = "Arquivos CONFIGURACAO [*.cfg]|*.cfg|" -- fitro 1 para seleção dos arquivos
local f2 = "Arquivos HISCADA [*.hsp]|*.hsp|" -- fitro 2 para seleção dos arquivos
local f3 = "Arquivos HSC [*.hsc]|*.hsc|" -- fitro 3 para seleção dos arquivos
local f4 = "Todos Arquivos (*.*)|*.*" -- fitro 4 para seleção dos arquivos
local filtro = f1 .. f2 .. f3 .. f4 -- monta lista com os 4 filtros
-- solicita seleção de arquivo
local flag_selected, file_path = FileDialog(
1, -- opção para abrir um arquivo
"Selecione arquivos de dados", -- titulo da janela de solicitação do arquivo
"hsc", -- extensão padrão para os arquivos
"C:\\H7Scada\\Projeto", -- diretorio inicial para seleção dos arquivos
"prj.hsp", -- nome inicial do arquivo a ser aberto
filtro, -- especificação dos filtros dos arquivos
4); -- seleção do filtro 4 como filtro inicial
return flag_selected, file_path
end
-- --------------------------------------------------------------------
-- Programa Principal
-- --------------------------------------------------------------------
-- executa exemplo
local msg
selected, file = exemplo3()
if (selected ~= 0) then
msg = "Arquivo selecionado (OPEN) : " .. file
else
msg = "Seleção de OPEN arquivo cancelada ..."
end
print (msg)
Exemplo de utilização para selecionar um arquivo com função “SAVE”:
fig. Exemplo de Interface para selecionar um arquivo para salvar
-- --------------------------------------------------------------------
-- Exemplo 1: FileDialog para selecionar um arquivo para SALVAR
-- --------------------------------------------------------------------
function exemplo1()
-- solicita seleção de arquivo
local flag_selected, file_path = FileDialog(2, "Selecione arquivos para SALVAR", "", "", "", "", 0)
return flag_selected, file_path
end
-- --------------------------------------------------------------------
-- Exemplo 2: FileDialog para selecionar um arquivo para SALVAR
-- --------------------------------------------------------------------
function exemplo2()
-- solicita seleção de arquivo
local flag_selected, file_path = FileDialog(2, "Selecione arquivos para SALVAR", "asm",
"C:\\Dados\\LCS", "cheio.cfg", "Arquivos CONFIGURAÇÃO [*.asm]|*.asm", 1);
return flag_selected, file_path
end
-- --------------------------------------------------------------------
-- Exemplo 3: FileDialog para selecionar um arquivo para SALVAR
-- --------------------------------------------------------------------
function exemplo3()
-- monta lista de filtros para seleção dos arquivos
local f1 = "Arquivos CONFIGURAÇÃO [*.cfg]|*.cfg|" -- fitro 1 para seleção dos arquivos
local f2 = "Arquivos HISCADA [*.hsp]|*.hsp|" -- fitro 2 para seleção dos arquivos
local f3 = "Arquivos HSC [*.hsc]|*.hsc|" -- fitro 3 para seleção dos arquivos
local f4 = "Todos Arquivos (*.*)|*.*" -- fitro 4 para seleção dos arquivos
local filtro = f1 .. f2 .. f3 .. f4 -- monta lista com os 4 filtros
-- solicita seleção de arquivo
local flag_selected, file_path
flag_selected, file_path = FileDialog(
2, -- opcão para SALVAR um arquivo
"Selecione arquivos de dados", -- Titulo da janela de solicitação do arquivo
"hsc", -- extensão padrão para os arquivos
"C:\\Dados\\Items", -- diretorio inicial para seleção dos arquivos
"prj.hsp", -- nome inicial do arquivo a ser salvo
filtro, -- especificação dos filtros dos arquivos
2); -- seleção do filtro 2 como filtro inicial
return flag_selected, file_path
end
-- --------------------------------------------------------------------
-- Programa Principal
-- --------------------------------------------------------------------
-- executa exemplo
local msg
selected, path = exemplo3()
if (selected ~= 0) then
msg = "Arquivo selecionado (SAVE): " .. path
else
msg = "Seleção de SAVE arquivo cancelada ..."
end
print (msg)