Loop em um pasta do windows
-
- Rank: Programador Sênior
- Mensagens: 48
- Registrado em: Seg, 23 Mar 2009 10:44 am
- Localização: Sapiranga - RS
Bom dia, tenho uma pasta com vários xml de nota eletronica, só preciso fazer um loop nessa pasta pra pegar o xml que tenha o numero da nota que estou procurando, eu faço um substr(v_nome_xml,25,10) pra comprar o numero da nota. Como faço o loop nos arquivos para comparar o numero da nota e pegar o xml certo?
- dr_gori
- Moderador
- Mensagens: 5013
- 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
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Veja esse tópico:
http://glufke.net/oracle/viewtopic.php?p=5870
Essa forma funciona nas seguintes condições:
* Tem que ter instalado a D2KWUTIL
* No forms 6i, os arquivos que você quer ler estão ná maquina do CLIENTE (não no servidor)
* No forms 9i, os arquivos que você quer ler estão no servidor de aplicação.
Como você não disse qual versão do forms você tem, se é web, nem onde estão os arquivos, não temos como direcionar melhor :-/
http://glufke.net/oracle/viewtopic.php?p=5870
Essa forma funciona nas seguintes condições:
* Tem que ter instalado a D2KWUTIL
* No forms 6i, os arquivos que você quer ler estão ná maquina do CLIENTE (não no servidor)
* No forms 9i, os arquivos que você quer ler estão no servidor de aplicação.
Como você não disse qual versão do forms você tem, se é web, nem onde estão os arquivos, não temos como direcionar melhor :-/
-
- Rank: Programador Sênior
- Mensagens: 48
- Registrado em: Seg, 23 Mar 2009 10:44 am
- Localização: Sapiranga - RS
Usei a seguinte função:
o nome do xml da nota é
Sabendo o numero da nota eu consigo ir até a pasta em que estão os varios xml de varias notas e procurar o que eu preciso.
o nome do xml da nota é
43110805877250000128550010000023101070005008-procNfe
FUNCTION FN_PROCURA_XML RETURN varchar2 IS
--
the_command varchar2(2000);
pCaminho varchar2(2000) := 'C:\xml_nota';
pNomeArquivo varchar2(2000) := to_char(23101,'fm0000000000');
pNroNota number(10) := 23101;--:nota_saida.nr_nota;
pArquivo Text_IO.File_Type;
filename varchar2(200) ;
linebuf varchar2(1800);
pNomeXML varchar2(100);
BEGIN
--
the_command := 'dir '||pCaminho||' /B > '||pCaminho||'\'||pNomeArquivo;
--
-- Executa comando para arquivo
Host( the_command, NO_SCREEN );
--
filename := pCaminho||'\'||pNomeArquivo;
--
--Abre o arquivo
pArquivo := Text_IO.Fopen(filename, 'R');
--
begin
loop
--
Text_IO.Get_Line(pArquivo, linebuf);
--
if linebuf is null then
--
exit;
--
end if;
--
if SUBSTR(linebuf,26,10) = to_char(pNroNota,'fm0000000000') then
--
pNomeXML := linebuf||chr(10);
--
linebuf := null;
--
exit;
--
end if;
--
end loop;
--
return('C:\xml_nota\'||pNomeXML);
--
exception
when no_data_found then
--
Text_IO.Fclose(pArquivo);
--
clear_message;
message('pNomeXML: '||'C:\xml_nota\'||pNomeXML);
message(' ');
end;
END;
-
- Rank: Analista Júnior
- Mensagens: 98
- Registrado em: Qui, 02 Ago 2007 3:06 pm
- Localização: sp
Érico Balboa
A pergunta mais cretina é aquela que não é feita
A pergunta mais cretina é aquela que não é feita
quando precisei fazer uma atividade similar a sua, percebi q o "dir" não funcionava direto no Host, eu tive q fazer uma "gambiarra" q era criar um ".bat" com text_io com o comando:
Com o Host você chama este ".bat" que vai executar o seu comando.
Ele vai criar um arquivo (arquivo.txt) com o conteúdo do dir que você especificou.
Feito isso, com o próprio Text_io, você varre este txt criado para procurar o q você quer, ou seja, você está verificando no conteúdo se existe algum arquivo com o parâmetro que você precisa.
Não esqueça de deletar os dois arquivos q você criou (.txt e .bat)
Não sei se ajudei, mas....
Se não ficou muito claro, dá um grito q eu procuro pelo método q eu apliquei e posto aqui.
Boa Sorte
dir c:\seu caminho > c:\arquivo.txt
Ele vai criar um arquivo (arquivo.txt) com o conteúdo do dir que você especificou.
Feito isso, com o próprio Text_io, você varre este txt criado para procurar o q você quer, ou seja, você está verificando no conteúdo se existe algum arquivo com o parâmetro que você precisa.
Não esqueça de deletar os dois arquivos q você criou (.txt e .bat)
Não sei se ajudei, mas....
Se não ficou muito claro, dá um grito q eu procuro pelo método q eu apliquei e posto aqui.
Boa Sorte
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes