Erro no fcreate com harbour ??

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

Moderador: Moderadores

Avatar do usuário
Nascimento
Usuário Nível 4
Usuário Nível 4
Mensagens: 763
Registrado em: 19 Jul 2008 12:11
Localização: OLINDA-PE

Erro no fcreate com harbour ??

Mensagem 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
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina :) clipper 5.3 /harbour/minigui
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Erro no fcreate com harbour ??

Mensagem por rochinha »

Amiguinho,

Voce Comecou a criar o arquivo e não fechou, ele ainda não existe. FOpen() só funciona em arquivos fechados.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
Nascimento
Usuário Nível 4
Usuário Nível 4
Mensagens: 763
Registrado em: 19 Jul 2008 12:11
Localização: OLINDA-PE

Erro no fcreate com harbour ??

Mensagem 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
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina :) clipper 5.3 /harbour/minigui
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Erro no fcreate com harbour ??

Mensagem 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,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Erro no fcreate com harbour ??

Mensagem 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
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
GilmarDalantonia
Usuário Nível 1
Usuário Nível 1
Mensagens: 44
Registrado em: 11 Dez 2014 16:42
Localização: Adamantina/SP

Erro no fcreate com harbour ??

Mensagem 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
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Erro no fcreate com harbour ??

Mensagem 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,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Erro no fcreate com harbour ??

Mensagem por rubens »

Tente também usar a função deletefile()...
Tive um problema parecido e só consegui apagar alguns arquivos com esta função;;;
"Eu e minha casa servimos ao Senhor e você ???"
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Erro no fcreate com harbour ??

Mensagem 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
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
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Erro no fcreate com harbour ??

Mensagem por asimoes »

Lá vem o MAGO DO HARBOUR SR. QUINTAS, AFF
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Erro no fcreate com harbour ??

Mensagem 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
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/
GilmarDalantonia
Usuário Nível 1
Usuário Nível 1
Mensagens: 44
Registrado em: 11 Dez 2014 16:42
Localização: Adamantina/SP

Erro no fcreate com harbour ??

Mensagem 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...
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Erro no fcreate com harbour ??

Mensagem 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.
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/
Responder