Localizar arquivo txt

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
dmaranini
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 15
Registrado em: Sex, 20 Jun 2008 4:07 pm
Localização: são paulo

alguém pode me ajudar?
tenho que criar um forms que localize um arquivo .txt e leia o seu conteudo.
la dentro dele estara separado por ;
e vou usar essas informaçoes para fazer um select

estava pensando em fazer

Selecionar tudo

select	substr(cd_veiculo,1,5),           
	substr(cd_modelo_veiculo,7,12),         
	substr(id_modelo_real,14,24)            
que é exatamente as posiçoes do que tera dentro dele

mas como eu faço para o forms localizar e le esse arquivo text ?
o usuario vai digitar o caminho e logo depois clicar no botão ou clicar num botao chamado diretorio para localizar o dir.
joaogarcia
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 91
Registrado em: Ter, 20 Mar 2007 7:19 pm
Localização: Campinas - SP
Contato:
Cordialmente,
João C. Garcia

Cara, tem bastante coisa aqui no fórum. Faça uma busca que você encontrará vários exemplos.

Basicamente, você vai ter que usar a package TEXT_IO (no próprio help do forms tem muita coisa) e as funções SUBSTR e INSTR para trabalhar com o conteúdo da linha do seu arquivo.

Qualquer dúvida, posta aí.

T+
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Isso, e pra abrir a "caixa" onde se escolhe os diretórios, vai nesse link:
http://glufke.net/oracle/viewtopic.php?t=1945
dmaranini
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 15
Registrado em: Sex, 20 Jun 2008 4:07 pm
Localização: são paulo

então cara

eu to fazendo assim

Selecionar tudo

declare
	v_diretorio varchar2(60);
	v_filtro_arquivo varchar2(5):= '*.txt';
begin
	break;
	:controle.localiza_arquivo	:= get_file_name(	v_diretorio,
								v_filtro_arquivo);
	:controle.posicao_col		:= instr(:controle.localiza_arquivo,'\',-1,1);
	:controle.localiza_arquivo	:= substr(:controle.localiza_arquivo,1,:controle.posicao_col);
end;

ele abre e consigo localizar o arquivo que preciso.
eu não estou conseguindo é atribuir este caminho que peguei para o meu text.
joaogarcia
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 91
Registrado em: Ter, 20 Mar 2007 7:19 pm
Localização: Campinas - SP
Contato:
Cordialmente,
João C. Garcia

Então....
Agora que você já tem o path de onde o seu arquivo está localizado, é só montar uma rotina usando a pack text_io...

Para abrir o seu arquivo você terá q usar a procedure fopen e para "pegar" o conteúdo da linha, use get_line... Olha uma estrutura básica. Teste aí:

Selecionar tudo

DECLARE
  in_file   Text_IO.File_Type;
  linebuf  VARCHAR2(2000);
BEGIN
  in_file := Text_IO.Fopen('path\arquivo.txt', 'r');
  
  LOOP
    Text_IO.Get_Line(in_file, linebuf);
    .
    .
    .
    /*Aqui você vai ter o conteúdo da linha (linebuf). Monte sua lógica para extrair as informações*/    

  END LOOP;

EXCEPTION
  WHEN no_data_found THEN
    Text_IO.Fclose(in_file);
END;
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 8 visitantes