Página 1 de 1

Arquivo TXT fica aberto

Enviado: 23 Jun 2010 18:29
por evertonlb
Amigos... resolvi alguns problemas com relaçao ao nome longo em arquivo TXT,em relacao ao "quadradinho" que aparecia no inicio... mas agora tenho outro problema...
Eu gravo na pasta do meu sistema um arquivo com o nome de DAT.TXT depois disso eu uso a funcao LF_Raname()
para copia-lo para outra pasta e para renomea-lo com um nome longo ( DAT0190910920.txt ),o que esta acontecendo é que quando eu plugo meu notebook na rede da loja o processo acontece direitinho, mas quando eu uso as maquinas do meu cliente este processo nao acontece... o software atécria o DAT.TXT porem ele fica aberto... qdo tento abri-lo com o WordPar ou NotePad da uma mensagem que o arquivo esta sendo usado por outro aplicativo e por isso acho que nao esta copiando para outra pasta e nem renomeando...
Notem.. do meu notebook para o servidor acontece tudo normal, renomeia e copia para a outra pasta sem problemas, mas das estacoes que estao na loja nao, da a mensagem de arquivo usado por outro aplicativo...


Alguma idéia??? ja estou aqui um dia todo e nada!!!
espero resolver amanha pela manha...
ainda tenho mais 4 clientes pra atender antes de sábado...

Obrigado a todos
Everton

Re: Arquivo TXT fica aberto

Enviado: 23 Jun 2010 22:29
por alaminojunior
Boa noite,
desculpe a pergunta cretina....mas já tentou o óbvio ? Force um Fclose(), quem sabe ...
Outra coisa sería verificar o cache de disco das máquinas. Pode ser que ele esteja habilitado e esteja causando este "atraso".
E também não está descartada a hipótese do setor onde foi gravado o arquivo estar corrompido.

Re: Arquivo TXT fica aberto

Enviado: 24 Jun 2010 00:52
por gvc
Se vc esta usando:
Set Alternate to <arquivo.txt>
Set Alternate on

Deve colocar no final:
Set Alternate off
Set Alternate to

Se esta usando:
set printer to <arquivo.txt>

Deve colocar:
set printer to

Se esta usando:
fopen

Deve colocar:
fclose

Faça um teste. Crie o arquivo aonde esta dando problema e feche a aplicação. Tente renomear o arquivo texto gerado.

Re: Arquivo TXT fica aberto

Enviado: 24 Jun 2010 11:13
por evertonlb
Obrigado pelas dicas, dei uma olhada no NG da FLNlib e encontrei alguma coisa sobre um erro 7143, dizendo que alguns sistemas operacionais nao permitem que a funcao para nomes longos funcione perfeitamente... meu ingles não é lá essas coisas,mas deu pra entender que esse problema existe... se alguem souber como soluciona-lo gostaria muito de saber a soluçao pra tal problema. hehehe. Seque meu código

Código: Selecionar todos

Set device to printer
set printer to DAV.PED
*
setprc(0,0)
*
nLinha := 0
*
@ 00,00  say "0"
@ 00,01  say DAVClie
@ 00,06  say DAVProm
@ 00,08  say DAVInte
@ 00,18  say "DAV"+DAVInte
@ 00,66  say DAVEntr
@ 00,75  say ValDesc
@ 00,84  say ValAcre
@ 00,93  say strzero( day( date() ), 2, 0 ) 
@ 00,95  say strzero( month( date() ), 2, 0 )
@ 00,97  say strzero( Year( date() ), 4, 0 ) 
@ 00,101 say "ORCAMENTO"
@ 00,199 say "X"
*
__nTamVet := Len( _aVetDetCom )
*
for __nI := 1 to __nTamVet
	*
   nLinha ++
   *
   DAVqtde1  := left( strzero( _aVetDetCom[ __nI, 3 ], 8, 3 ), 4 ) + right( strzero( _aVetDetCom[ __nI, 3 ], 8, 3 ), 3 )
	*                                                                                                                                                       
   DAValUni  :=left( strzero( (_aVetDetCom[ __nI, 6 ]/_aVetDetCom[ __nI, 3 ]), 9, 3 ), 5 ) + right( strzero( (_aVetDetCom[ __nI, 6 ]/_aVetDetCom[ __nI, 3 ]), 8, 3 ), 3 )
	*
	@ nLinha,0  say "1"
	@ nLinha,1  say _aVetDetCom[ __nI, 2 ]
	@ nLInha,8  say DAVQtde1
	@ nLinha,15 say "0001000"
	@ nLinha,22 say DAValUni
	@ nLinha,69 say "X"  
	*
next
nLinha ++
@ nLinha,00 say "9"
*
ArqOriginal := "DAV.PED"
*
LF_FRename( ArqOriginal, ( _cPathServ + "\P"+ DAVInte +".PED" ) )
fclose(ArqOriginal)
delete file( ArqOriginal )
*
set device to screen

Re: Arquivo TXT fica aberto

Enviado: 24 Jun 2010 11:52
por alaminojunior
Perfeito , você está tentando renomear o arquivo que praticamente ainda não existe. Não foi fechado.
...
next
nLinha ++
@ nLinha,00 say "9"
*
*
SET PRINTER TO
SET DEVICE TO SCREEN

ArqOriginal := "DAV.PED"
LF_FRename( ArqOriginal, ( _cPathServ + "\P"+ DAVInte +".PED" ) )
fclose(ArqOriginal) // ESTE AQUI TALVEZ NÃO PRECISE, HAJA VISTA NÃO FOI ABERTO POR FOPEN()
delete file( ArqOriginal )

Re: Arquivo TXT fica aberto

Enviado: 24 Jun 2010 15:44
por evertonlb
resolvi tirar fora ( mesmo porque nao preciso mais ) a lib de nome extenso
agora to usando a FRename() porem nao consigo gravar o arquivo novo no path novo...
to tentando fazer assim fRename( ArqVelho, "c:\teste\"+ ArqNovo ) nao deu... qual a sintaxe correta???

Obrigado!

Re: Arquivo TXT fica aberto

Enviado: 24 Jun 2010 16:11
por alaminojunior
A sintaxe sería:

Código: Selecionar todos

FRename("c:\arquivos\arquivo.txt","c:\arquivos\arquivo1.txt")
Lembrando que o arquivo precisa estar fechado.