Problemas com a filesize()

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

Problemas com a filesize()

Mensagem por cjp »

Pessoal,

Estou tendo um problema estranho com a função filesize(). Ela está retornando -1 ou -11, mesmo quando o tamanho do arquivo está correto, com cerca de 1 MB. Já testei com vários arquivos.

Noto que isto só está ocorrendo com arquivos que não são .dbf. Quando testo com .dbf, funciona corretamente.

Será que a filesize() só funciona com .dbf?
Inacio de Carvalho Neto
rmlazzari
Usuário Nível 2
Usuário Nível 2
Mensagens: 64
Registrado em: 09 Dez 2013 14:18
Localização: são paulo

Problemas com a filesize()

Mensagem por rmlazzari »

Quando precisei, fiz assim:

Código: Selecionar todos

abc := directory('arquivo.txt')
tamanho := abc[1][2] // em bytes
cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

Problemas com a filesize()

Mensagem por cjp »

Aqui tá dando "Error BASE/1132 Erro de limite: acesso de array" na linha tamanho := abc[1][2] // em bytes.
Inacio de Carvalho Neto
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Problemas com a filesize()

Mensagem por fladimir »

Eu uso aki com arquivos sem ser DBF e funciona bem.

Vc usa Harbour ou xHarbour?

Posta um exemplo de como esta fazendo..
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Problemas com a filesize()

Mensagem por JoséQuintas »

CJP... acho que esqueceu do básico

Código: Selecionar todos

abc := directory('arquivo.txt') 
Isso retorna um array com as informações do arquivo.txt, mas somente se ele existir, senão retorna um array vazio, que é o que deve ter acontecido.
ao acessar o elemento 1, que não existe, deu esse erro.

Código: Selecionar todos

oFiles := Directory( "arquivo.txt" )
IF Len( oFiles ) == 0
   ? "Não existe o arquivo"
ELSE
   ? oFiles[ 1, 2 ]
ENDIF
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Problemas com a filesize()

Mensagem por JoséQuintas »

Achei isto, confirme.

http://harbour.edu.pl/lib/tools/ng98d54.html

Mas dá pra ver que os exemplos estão furados.
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/
rmlazzari
Usuário Nível 2
Usuário Nível 2
Mensagens: 64
Registrado em: 09 Dez 2013 14:18
Localização: são paulo

Problemas com a filesize()

Mensagem por rmlazzari »

Ou ainda... pretaportê, rs...

Código: Selecionar todos

FUNCTION Fsize(cArq)

loca aDir := Directory(cArq)

Return iif ( Len (aDir) == 0, -1, aDir [1,2])
:)Pos
cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

Problemas com a filesize()

Mensagem por cjp »

Realmente, meu caro Quintas, comi bola ao não lembrar que o arquivo está em pasta diferente da do programa.

Obrigado. Agora funcionou.

E agora eu vi que também estava comendo bola na filesize, da mesma forma. Corrigi e ela também funcionou. Obrigado a todos.
Inacio de Carvalho Neto
Responder