Página 1 de 1
Apagar matriz
Enviado: 02 Set 2014 10:04
por juniorcamilo
bom dia
amigos nao sou bom em matriz estou usando LF_DIRECTORY() da LIB LFNLIB (viewtopic.php?f=1&t=11069)
a funcao LErXML nao postada acho q nao precisa dela
Código: Selecionar todos
Private cArqImp := LERINI("[LOCALNFE]")+"EMITIDAS\201408\NFE\*.XML"
Private aDirectory := LF_DIRECTORY(cArqimp, "D")
cArqImp := substr(cArqimp,1,Len(cArqimp)-5)
For a = 1 to Len(aDirectory)
if LerXml(aDirectory[a,6],cArqimp,'xMotivo') == "Autorizado o uso da NF-e"
else
apagar a matriz ?????????????????
endif
next
Tags:
ADel ASize AAdd ACopy AFill AIns
Apagar matriz
Enviado: 02 Set 2014 12:59
por alxsts
Olá!
Por favor, poderia ser mais claro?
Apagar matriz
Enviado: 02 Set 2014 13:15
por juniorcamilo
alxsts escreveu:Olá!
Por favor, poderia ser mais claro?
estou alimentando uma matriz(aDirectory) com os nomes dos XMLs de NFE emitidas pelo cliente. preciso saber quais dos XMLs foram autorizados! aqueles que não foram autorizados pela sefaz excluir do aDirectory.
Apagar matriz
Enviado: 02 Set 2014 13:36
por alxsts
Olá!
Por favor, faça o teste. Não compilei...
Código: Selecionar todos
Private cArqImp := LERINI("[LOCALNFE]")+"EMITIDAS\201408\NFE\*.XML"
Private aDirectory := LF_DIRECTORY(cArqimp, "D")
LOCAL nLen
cArqImp := substr(cArqimp,1,Len(cArqimp)-5)
nLen := Len(aDirectory)
For a = 1 to nLen
if LerXml(aDirectory[a,6],cArqimp,'xMotivo') == "Autorizado o uso da NF-e"
else
// apagar a matriz ?????????????????
If a < nLen
ADel( aDirectory, a )
ASize( aDirectory, --nLen )
Endif
endif
next
Apagar matriz
Enviado: 02 Set 2014 15:15
por juniorcamilo
Olá!
Por favor, faça o teste. Não compilei...
Valeu sua ajuda tava perdido justamente nos comando adel e asize
Código: Selecionar todos
a := 1
do while a <= Len(aDirectory)
if LerXml(aDirectory[a,6],cArqimp,'xMotivo') == "Autorizado o uso da NF-e"
&&Linhas de programacao
a++
else
ADel( aDirectory, a )
ASize( aDirectory, Len(aDirectory)-1 )
endif
enddo
Apagar matriz
Enviado: 02 Set 2014 15:16
por juniorcamilo
opa esqueci de dizer obrigado alxsts
Apagar matriz
Enviado: 02 Set 2014 16:25
por alxsts
Olá!
Percebi que você trocou o For...Next por um Do...While...Enddo. Ficou bom.
Note que com o For...Next, você precisaria tratar o último elemento do array, como mostrei no exemplo que você postou.
Uma recomendação:
é sempre preferível montar o For...Next como coloquei no exemplo, armazenando o tamanho do array em uma variável antes e colocar esta variável como limite superior do For...Next, ao invés de chamar uma função, neste caso Len(), a cada iteração.