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: 1914
- 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: 20420
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
- Curtiram: 1 vez
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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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: 2822
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
- Curtiu: 2 vezes
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
