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:

  1. Interface para abrir (“open”) um arquivo

  2. Interface para salvar (“save”) um arquivo

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

flag_selected | Flag de seleção onde retorna 1 (“true”) se arquivo foi selecionado com sucesso, caso contrário,
retorna 0 (“false”), por exemplo quando o usuário cancelou a seleção do arquivo. O arquivo
selecionado será retornado na variável “file_selected”. O valor “true” pode ser considerado um valor
numérico diferente de zero, e o valor “false” pode ser considerado um valor numérico igual a zero.

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”:

../_images/img_file_dialog_open.jpg

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”:

../_images/img_file_dialog_save.jpg

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)