No vídeo de hoje, iremos responder a dúvida em como validar o tamanho de um arquivo em AdvPL.
Hoje, a dúvida foi feita pelo grande Romero, onde, além de verificar se um arquivo existe, ele perguntou como validar o tamanho do arquivo, para não pegar conteúdo inválido.
Com isso em mente, é necessário usar a classe FWFileReader e usar o método GetFileSize, que retorna o tamanho do arquivo em bytes, e com isso podemos usar nas nossas customizações para validar.
E abaixo o código fonte desenvolvido para exemplificar:
//Bibliotecas
#Include "TOTVS.ch"
/*/{Protheus.doc} User Function zVid05
Função de exemplo para validar o tamanho de um arquivo em AdvPL
@type Function
@author Atilio
@since 27/11/2021
@version version
/*/
User Function zVid05()
Local aArea := GetArea()
Local cArquivo := "C:\OBS\Atilio Sistemas\Q100 Fácil.mp4"
Local oFile
Local nTamanho := 0
Local cMascara := "@E 999,999,999,999,999,999"
//Realiza a abertura do arquivo para pegar o tamanho em bytes
oFile := FWFileReader():New(cArquivo)
If oFile:Open()
nTamanho := oFile:GetFileSize()
oFile:Close()
EndIf
//Se tiver tamanho, exibe uma mensagem para o usuário
If nTamanho > 0
MsgInfo("O arquivo <strong>" + cArquivo + "</strong>, possui <strong>" + Alltrim(Transform(nTamanho, cMascara)) + " bytes</strong>", "Atenção")
EndIf
RestArea(aArea)
Return
Bom pessoal, por hoje é só.
Abraços e até a próxima.
Olá boa tarde,
É possivel avaliar o tamanho do json antes de retornar um GET do REST, para não estourar o MaxString?
Bom dia Douglas, tudo joia?
Eu nunca precisei validar o tamanho, mas ai acho que teria duas alternativas:
A. Aumentar o MaxStringSize no AppServer: https://tdn.totvs.com/pages/viewpage.action?pageId=161349793
B. Utilizar o Begin Sequence … End Sequence, que daí se estourar o erro, você consegue tratar, segue exemplo: https://terminaldeinformacao.com/2023/10/11/tratando-execucoes-e-erros-com-begin-sequence-end-maratona-advpl-e-tl-064/
Tenha um ótimo e abençoado fim de semana.
Um forte abraço.