Jump to content
Fivewin Brasil

"ferase" nao apaga


Luiz Fernando

Recommended Posts

Meu PDV manda um arquivo TXT para o servidor, assim que o sistema de retaguarda faz a integração deste arquivo, ele em seguinda apaga o mesmo,com o comando abaixo, mais não sei pq que as vezes ele não consegue apagar, dai mais tarde este arquivo é integrado novamente ficando assim em duplicidade,de cada 30 arquivos isto ocorre umas 4 vezes,fiz o cliente colocar um servidor2003 e refazer toda rede, mais mesmo assim não adiantou nada.

ferase("z:\faturas\resp\"+marquivos)

caso alguem tiver alguma dica

Obrigado

Luiz Fernando

msn: empresoft@globo.com

skype:empresoft

empresoft@globo.com

FWH 8.04,XHARBOUR 1.1,PELES,XDEV,VLIB,ADS 8.1

Link to comment
Share on other sites

Meu PDV manda um arquivo TXT para o servidor, assim que o sistema de retaguarda faz a integração deste arquivo, ele em seguinda apaga o mesmo,com o comando abaixo, mais não sei pq que as vezes ele não consegue apagar, dai mais tarde este arquivo é integrado novamente ficando assim em duplicidade,de cada 30 arquivos isto ocorre umas 4 vezes,fiz o cliente colocar um servidor2003 e refazer toda rede, mais mesmo assim não adiantou nada.

ferase("z:\faturas\resp\"+marquivos)

caso alguem tiver alguma dica

Obrigado

Luiz Fernando

msn: empresoft@globo.com

skype:empresoft

empresoft@globo.com

FWH 8.04,XHARBOUR 1.1,PELES,XDEV,VLIB,ADS 8.1

Link to comment
Share on other sites

Consultar apos a exclusão e confirmar se o mesmo foi excluido? Caso ainda exista mandar um alerta ou tentar novamente, já que o problema é intermitente. Já ocorreu comigo, e mando um alerta para o cliente, e infelizmente deleta manualmente. Pode ser feio, mas ele entendeu o problema.

Decker

celeyendecker@hotmail.com

São Paulo - S.P.

Fivewin(Demo)-Clipper5.3-WS

Link to comment
Share on other sites

Experimente dessa forma.


arq := "ARQUIVO.TXT"

FERASE(arq)

nVEZ := 0

DO WHILE FILE(ARQ)

SYSWAIT(0.5)

SetFattr( ARQ, 0 )

FERASE(arq)

nVEZ ++

IF nVEZ > 3

IF !MSGNOYES("Arquivo " + ARQ + +" não foi possivel apagar o arquivo."+CRLF+"Deseja Retentar?")

EXIT

ENDIF

nVEZ := 0

ENDIF

ENDDO

id=code>id=code>

Marcelo Michels

marcelo@infototal.com.br

celo.michels@hotmail.com

xHarbour 1.1 + Fwh 8.01 + WorkShop + Bcc 5.82 + WvwTools + SQLRDD + xMate.

Editado por - kbelo on 19/01/2009 21:00:06

Link to comment
Share on other sites

citação:

Meu PDV manda um arquivo TXT para o servidor, assim que o sistema de retaguarda faz a integração deste arquivo, ele em seguinda apaga o mesmo,com o comando abaixo, mais não sei pq que as vezes ele não consegue apagar, dai mais tarde este arquivo é integrado novamente ficando assim em duplicidade,de cada 30 arquivos isto ocorre umas 4 vezes,fiz o cliente colocar um servidor2003 e refazer toda rede, mais mesmo assim não adiantou nada.

ferase("z:\faturas\resp\"+marquivos)

caso alguem tiver alguma dica

Obrigado

Luiz Fernando

msn: empresoft@globo.com

skype:empresoft

empresoft@globo.com

FWH 8.04,XHARBOUR 1.1,PELES,XDEV,VLIB,ADS 8.1


id=quote>id=quote>

Provavelmente outro aplicativo estava com o arquivo aberto no momento que tentou excluir. Voce deve fazer o seguinte:

cArq := "z:\faturas\resp\"+marquivos

nCont := 0

While File(cArq)

ferase(cArq)

Inkey(.1)

nCont++

If nCont > 100 // tenta apagar por no maximo 10s

MsgStop(" Nao consegui apagar o arquivo : "+cArq)

Quit

EndIf

EndDo

// dessa forma ele tenta por um tempo, que deve ser o suficiente para o outro aplicativo processar o arquivo e ficar livre para apagar. No caso, se precisar aumentar o tempo aumente onde está 100. Para ter uma base, 100 significa neste caso 10 segundos. Lembro que este é o tempo maximo, caso ele consiga apagar de primeira já vai sair do While.

Link to comment
Share on other sites

sujeito, é mais fácil desconfiar do que é mais óbvio, informe os retornos:

? FILE("z:\faturas\resp\"+marquivos)

? ferase("z:\faturas\resp\"+marquivos)

? FERROR()

? DosError()

? "z:\faturas\resp\"+marquivos

citação:

ferase("z:\faturas\resp\"+marquivos)

caso alguem tiver alguma dica

Obrigado

Luiz Fernando


id=quote>id=quote>

assinatura3.gif

Link to comment
Share on other sites

Já que o caso é gerar duplicidade, não te serviria verificar antes de gravar?

Basicamente você colocaria os arquivos dentro de uma pasta e apagaria todos os arquivos que estiverem dentro dela antes de salvar...

Tenho uma função pra apagar os arquivos temporários que uso:


****************************************************************************

procedure LimpaTemps(lMsg)

****************************************************************************

*

* Limpar os arquivos temporários / desnecessários

* Parametros:

* Retorno: Nenhum

*

* Autor: Samir

* 5/11/2008 - 18:05:22

*

****************************************************************************

local cDir := "", aDelArquivos := {}, i := 0,;

lArqTemp := .F.,lArqLog := .F.,;

lDirTemp := .F.,lDirLog := .F.,;

cPasta := cFilePath( GetModuleFileName( GetInstance() ) )

Default lMsg:= .T.

//-- Arquivos Temporários ---------------------------------------------//

cDir := cPasta+"Temp\"

if IsDirectory(cDir)

aDelArquivos := Directory(cDir)

For i := 1 to len(aDelArquivos)

if Left(aDelArquivos[i,1],3) == "TMP"

fErase(cDir+aDelArquivos[i,1])

else

lArqTemp := .T.

end

end

if !lArqTemp

DirRemove(cDir)

end

else

lDirTemp := .T.

end

//-- Arquivos de Log --------------------------------------------------//

cDir := cPasta +"Logs\"

if IsDirectory(cDir)

aDelArquivos := Directory(cDir)

For i := 1 to len(aDelArquivos)

if Right(aDelArquivos[i,1],5) == ".Zlog"

fErase(cDir+aDelArquivos[i,1])

else

lArqLog := .T.

end

end

if !lArqLog

DirRemove(cDir)

end

else

lDirLog := .T.

end

//-- Mensagem do resultado -------------------------------------------//

if lMsg

if !lDirTemp .And. !lDirLog .And. !lArqTemp .And. !lArqLog

Msg('Arquivos excluidos com sucesso')

elseif !lDirTemp .And. !lDirLog .And. lArqTemp .And. lArqLog

Msg('Pasta "Temp" e pasta "Log" não foram excluidas;'+;

'por conterem arquivos que não são do sistema')

elseif !lDirTemp .And. lArqTemp

Msg('Pasta "Temp" não foi excluida por conter;'+;

'arquivos que não são do sistema')

elseif !lDirlog .And. lArqLog

Msg('Pasta "Log" não foi excluida por conter;'+;

'arquivos que não são do sistema')

end

end

Return Nil

/*------------------------------------------------------------------------*/

id=code>id=code>

O parâmetro é para indicar se vai exibir mensagens ou não, você pode criar um parâmetro indicando a pasta a ser utilizada, eu modifico pastas no mesmo diretório do executável. A função também tem um prevenção para caso o usuário crie/cole arquivos no diretório...

Espero que te ajude icon_smile_wink.gif

Editado por - sambomb on 20/01/2009 10:09:06

Link to comment
Share on other sites

Caso não foi feita a exclusão, criei um icone, para exclusão com determinado prefixo. Assim, os "genios" não excluem tudo, é arriscado, e quem faz isso, tem acesso por senha. Acontece o mesmo comigo, alguns arquivos o FERASE, não exclui sozinho, não sei por que. Pode ser burrice, sei lá... mas que esta funcionado, está......

Decker

celeyendecker@hotmail.com

São Paulo - S.P.

Fivewin(Demo)-Clipper5.3-WS

Link to comment
Share on other sites

Vlw a todos, vou estudar as resposta acimas, mais o que acho mais estranho é que em todos cliente que usa este esquema funciona sem problema, o problema acontece somente em um cliente,por isto mandei refazer a rede,mais blz...

Abraços

Luiz Fernando

msn: empresoft@globo.com

skype:empresoft

empresoft@globo.com

FWH 8.04,XHARBOUR 1.1,PELES,XDEV,VLIB,ADS 8.1

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...