Como localizar um arquivo informado
Moderador: Moderadores
Como localizar um arquivo informado
Olá pessoal,
Existe algum comando no Harbour 3.2.0dev para procurar um arquivo em uma determinada pasta ?
Gostaria de informar por Exemplo "11402", se esse numero estiver contido no código chave,
atribuir o código inteiro para uma variável.
c:\AcbrMonitorPlus\Arqs\Retorno\35170108050974000196550010000114021000114020.xml
Harbour 3.2.0dev (console)
Existe algum comando no Harbour 3.2.0dev para procurar um arquivo em uma determinada pasta ?
Gostaria de informar por Exemplo "11402", se esse numero estiver contido no código chave,
atribuir o código inteiro para uma variável.
c:\AcbrMonitorPlus\Arqs\Retorno\35170108050974000196550010000114021000114020.xml
Harbour 3.2.0dev (console)
-
Kapiaba
- Colaborador

- Mensagens: 1908
- Registrado em: 07 Dez 2012 16:14
- Localização: São Paulo
- Contato:
Como localizar um arquivo informado
Fácil:
Abs.
Código: Selecionar todos
// PEGA O .PDF DO DANFE GERADA PELO UNIDANFE.EXE
cPdfNfeUni := aFindFile( ALLTRIM( cCHAVE ) + "-danfe.pdf", ;
cDirExe+"unidanfe\email\anexos" )
// Exemplo
// aDir := aFindFile("23120711522734000157550010000000061000000060_10-cce.pdf", "c:\INST_NFE\unidanfe\email\anexos\" )
IF .NOT. EMPTY( cPdfNFeUni )
cArq3 := cPdfNFeUni[1]
cPdfNfeUni := ALLTRIM( cArq3 )
ELSE
cPdfNFeUni := "" // Para nao quebrar o envio de email
cArq := ""
cExt := ""
cPath := ""
cPath := cDirExe+"UNIDANFE\EMAIL\ANEXOS\"
//cFile := cChave+"-danfe.pdf" // exemplo
cFile := ALLTRIM( cCHAVE ) + "-danfe.pdf"
// Isto funciona na minha versao 2.7 superiores e RECURSIVE
aFile := DIRECTORYRECURSE( cPath + cFile )
If Len(aFile)==0
//? "Arquivo do DANFE Não Encontrado"
cPdfNFeUni := ""
Else
For nI := 1 to Len( aFile )
hb_FNameSplit( aFile[nI,1], @cPath, @cArq, @cExt )
//? cPath+" "+cArq+" "+cExt+" Perfeito Emotta!"
Next
aFiles := ALLTRIM( cPath+cArq+cExt )
cPdfNFeUni := aFiles
EndIf
ENDIF
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Como localizar um arquivo informado
Pelo que entendi, sabe a pasta, mas não sabe o nome do arquivo.
Mas o melhor seria colocar exatamente na posição do número, porque pode coincidir muita coisa, principalmente se fosse a nota número 1.
E pode ter emissão, cancelamento, carta de correção, NFE, CTE, MDFE, etc, com mesmo número.
Quanto mais detalhes da chave, mais chance de pegar o que realmente quer.
Código: Selecionar todos
aFleList := Directory( "*11402*.xml" )
E pode ter emissão, cancelamento, carta de correção, NFE, CTE, MDFE, etc, com mesmo número.
Quanto mais detalhes da chave, mais chance de pegar o que realmente quer.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
Como localizar um arquivo informado
Não testei, mas será que isto não dá certo:JoséQuintas escreveu:aFleList := Directory( "*11402*.xml" )
Código: Selecionar todos
aFleList := Directory( "*11402?-nfe.xml" )
ou
aFleList := Directory( "*11402?.xml" )Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Como localizar um arquivo informado
Testei essas 3 formas, mas todas elas, traz como resultado todos os arquivos da pasta informada,
elas não trazem, como no exemplo somente o arquivo que contenha "12334"
Harbour 3.2.0dev (console)
elas não trazem, como no exemplo somente o arquivo que contenha "12334"
Código: Selecionar todos
aFileList := Directory( cPastaFiles, "*12334*.xml" )
aFileList := Directory( cPastaFiles, "*12334?-nfe.xml" )
aFileList := Directory( cPastaFiles, "*12334?.xml" )
IF LEN(aFileList) > 0
xChave := LEFT(aFileList[1,1],44)
ENDIF
Harbour 3.2.0dev (console)
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
Como localizar um arquivo informado
Amigo, seu código está errado. Teste este:
Testei aqui e funcionou certinho.
Abraços
Código: Selecionar todos
PROCEDURE Main
LOCAL aFiles
aFiles := Directory( "*12334?-nfe.xml" ) //ou Directory( "*12334?.xml" )
AEval( aFiles, {|a| QOut( a[1] ) } )
RETURNAbraços
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
Como localizar um arquivo informado
Olá Pessoal,
Da forma que o Toledo fez funciona corretamente, porém somente na pasta local. Se desejar pesquisar em outra pasta, precisa colocar a pasta e a máscara como um único parâmetro. Se usar 2 parâmetros falha, exemplo:
Da forma que o Toledo fez funciona corretamente, porém somente na pasta local. Se desejar pesquisar em outra pasta, precisa colocar a pasta e a máscara como um único parâmetro. Se usar 2 parâmetros falha, exemplo:
Código: Selecionar todos
aFileList := Directory( cPastaFiles + "*12334*.xml" )Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Como localizar um arquivo informado
Realmente, eu cometi esse erro.precisa colocar a pasta e a máscara como um único parâmetro.
No caso de Carta de Correção e Cancelamento, é o mesmo numero, mas estão em pastasE pode ter emissão, cancelamento, carta de correção, NFE, CTE, MDFE, etc, com mesmo número.
Quanto mais detalhes da chave, mais chance de pegar o que realmente quer.
diferentes, por exemplo:
Carta de Correção está em Evento/CCe
Cancelamento está em Evento/Cancelamento
