Luiz Fernando Posted January 19, 2009 Report Share Posted January 19, 2009 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 Quote Link to comment Share on other sites More sharing options...
Luiz Fernando Posted January 19, 2009 Author Report Share Posted January 19, 2009 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 Quote Link to comment Share on other sites More sharing options...
Decker Posted January 19, 2009 Report Share Posted January 19, 2009 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 Quote Link to comment Share on other sites More sharing options...
Kbelo Posted January 19, 2009 Report Share Posted January 19, 2009 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 Quote Link to comment Share on other sites More sharing options...
Luiz Fernando Posted January 19, 2009 Author Report Share Posted January 19, 2009 Vlw pelas respostas. Decker,o que vc quiz dizer em deletar manualmente. Kbelo, irei colocar esta rotina amanha em meu cliente,vlw. 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 Quote Link to comment Share on other sites More sharing options...
emotta Posted January 19, 2009 Report Share Posted January 19, 2009 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. Quote Link to comment Share on other sites More sharing options...
Eric.Developer Posted January 20, 2009 Report Share Posted January 20, 2009 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> Quote Link to comment Share on other sites More sharing options...
sambomb Posted January 20, 2009 Report Share Posted January 20, 2009 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 Editado por - sambomb on 20/01/2009 10:09:06 Quote Link to comment Share on other sites More sharing options...
Decker Posted January 20, 2009 Report Share Posted January 20, 2009 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 Quote Link to comment Share on other sites More sharing options...
Luiz Fernando Posted January 20, 2009 Author Report Share Posted January 20, 2009 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 Quote Link to comment Share on other sites More sharing options...
sambomb Posted January 20, 2009 Report Share Posted January 20, 2009 Pode ser algum programa que ele tenha instalado, o antivirus dele, um virus... pode ser milhões de coisas... MSN: samirabreu@hotmail.com Skype: SamirAbreu xHarbour 1.1.0 + FwXh 8.02 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.