Página 1 de 1

Erro no fcreate com harbour ??

Enviado: 25 Mai 2014 13:00
por Nascimento
Amigos tive uma surpresa em uma pequena funçao minha
em clipper ela compila e funciona como deve
fui compilar para harbour e ês a surpresa nao funciona corretamente
vou postar um exemplo pra melhor entendimento

Código: Selecionar todos

procedure Main()

       fcreate("TESTE.TXT", 0)     // CRIA O ARQUIVO
       txt_file:= fopen("TESTE.TXT",1) // ABRE O ARQUIVO PARA ESCRITA
      if (!(ferror() = 0))
         ? "Erro de criacao do arquivo TESTE.TXT ::> " + Str(ferror(), 3, 0)  // EXIBE CODIGO DE ERRO CASO AJA NO CASO TA DANDO ERRO 32             
         quit                                                                                         // DETALHE SO NO HARBOUR 3.2 COM MINGW   NO CLIPPER FUNCIONA CORRETAMENTE    
      endif
      fwrite(txt_file, "teste de escrever")                                           // ESCREVE O CONTEUDO NO ARQUIVO
      fclose(txt_file)                                                                         // FECHA O ARQUIVO   
agradeço a todos que poderem me ajudar
att: Josivan Nascimento

Erro no fcreate com harbour ??

Enviado: 25 Mai 2014 13:30
por rochinha
Amiguinho,

Voce Comecou a criar o arquivo e não fechou, ele ainda não existe. FOpen() só funciona em arquivos fechados.

Erro no fcreate com harbour ??

Enviado: 25 Mai 2014 13:46
por Nascimento
Muito obrigado meu caro amigo Rochinha pois esse pequeno e importantissimo detalhe havia passado
despercebido acho que porque no clipper funcionou normalmente
codigo resolvido

:)

Código: Selecionar todos

Func main()
       C_arqui:=fcreate("TESTE.TXT", 0)
	 fclose(C_arqui) 
       txt_file:= fopen("TESTE.TXT",1)
      if (!(ferror() = 0))
         ? "Erro de criacao do arquivo TESTE.TXT ::> " + ;
            Str(ferror(), 3, 0)
         quit
      endif
      fwrite(txt_file, "teste de escrever")
      fclose(txt_file)
:-Y

Erro no fcreate com harbour ??

Enviado: 25 Mai 2014 17:47
por Toledo
Amigos, resumindo:

Procure por:

Código: Selecionar todos

       C_arqui:=fcreate("TESTE.TXT", 0)
    fclose(C_arqui) 
       txt_file:= fopen("TESTE.TXT",1)
e troque por:

Código: Selecionar todos

       txt_file:=fcreate("TESTE.TXT", 0)
Abraços,

Erro no fcreate com harbour ??

Enviado: 26 Mai 2014 07:52
por asimoes
Com tratamento de erro.

Código: Selecionar todos

cErro:="Erro."
TRY
   nErrHandle:=FCreate("TESTE.TXT")

   IF FError() <> 0
      cErro:="Erro criando arquivo."   
      BREAK
   ENDIF

   FWrite(nErrHandle,"Escreve alguma coisa"+HB_EOL())

   IF !  FClose( nFileHandle )
      cErro:="Erro fechando arquivo."
      BREAK
   ENDIF

CATCH
   Alert(cErro)
END

Erro no fcreate com harbour ??

Enviado: 23 Jun 2017 19:46
por GilmarDalantonia
boa noite... sei q o topico é antigo... mas estou com um problema parecido... não consigo apagar o arquivo txt, mesmo fechando ele com o fclose... na versão em clipper não tive esse problema... mas na versão em harbour, parede q o arquivo fica protegido... se alguem poder me ajudar eu agradeço muito... estou me referindo ao arquivo sainfe.txt gerado pelo acbrmonitoplus... assim q leio seu conteudo, ele fica com atributo de somente leitura... só muda quando fecho o sistema

Erro no fcreate com harbour ??

Enviado: 23 Jun 2017 21:23
por Toledo
Olá Gilmar, você tem certeza que está fechando o arquivo aberto com o FOPEN()? Verifique se está fechando o arquivo com FCLOSE().

Abraços,

Erro no fcreate com harbour ??

Enviado: 23 Jun 2017 22:07
por rubens
Tente também usar a função deletefile()...
Tive um problema parecido e só consegui apagar alguns arquivos com esta função;;;

Erro no fcreate com harbour ??

Enviado: 24 Jun 2017 01:03
por JoséQuintas
Com tratamento de erro.
Pra que complicar? Apesar que nem isso eu usaria.

Código: Selecionar todos

nErrHandle := FCreate("TESTE.TXT")
IF FError() <> 0
   Alert( "Erro criando arquivo."  )
ELSE
   FWrite(nErrHandle,"Escreve alguma coisa"+HB_EOL())
   IF ! FClose( nFileHandle )
      Alert( "Erro fechando arquivo." )
   ENDIF
ENDIF

Erro no fcreate com harbour ??

Enviado: 24 Jun 2017 07:21
por asimoes
Lá vem o MAGO DO HARBOUR SR. QUINTAS, AFF

Erro no fcreate com harbour ??

Enviado: 24 Jun 2017 08:50
por JoséQuintas
Isso pode esconder outros erros.
Um exemplo de esconder erros.

Código: Selecionar todos

cErro:="Erro."
TRY
 nErrHandle := FCreate( 5 )

 IF FError() <> 0
   cErro:="Erro criando arquivo."  + 3
   BREAK
 ENDIF

 FWrite(cErro,"Escreve alguma coisa" + 3 )

 IF ! FClose( cErro )
   cErro:="Erro fechando arquivo."
   BREAK
 ENDIF

CATCH
 Alert(cErro)
END

Erro no fcreate com harbour ??

Enviado: 24 Jun 2017 08:55
por GilmarDalantonia
Bom dia... consegui corrigir com o deletefile(), valeu Rubens, toledo, Zé... tb acertei meu código com o seu exemplo Zé... obrigado a todos...

Erro no fcreate com harbour ??

Enviado: 24 Jun 2017 09:32
por JoséQuintas
Zé... tb acertei meu código com o seu exemplo Zé
Só pra constar: O exemplo foi do A Simões, eu apenas retirei a parte do TRY/CATCH.