Criando arquivos binarios

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

Moderador: Moderadores

Avatar do usuário
bencz
Usuário Nível 4
Usuário Nível 4
Mensagens: 524
Registrado em: 28 Abr 2012 17:36
Contato:

Criando arquivos binarios

Mensagem por bencz »

Olá, bom dia amigos (:

Bom, eu gostaria de saber, como posso gravar arquivos binarios, usando o xHb/hb...

bom, seguindo a documentação, ele diz que eu poderia fazer isto:

Código: Selecionar todos

function main(...)
  local hFile

  hFile := FCreate( "arquivo.bin", 0)
  FWrite(hFile, 0x0A) // O Correto seria um texto...
  FClose(hFile)

return nil
Enfim, mas, nao rola... então, fica a duvida, como posso criar um arquivo binario com o Hb ?
Imagem
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Criando arquivos binarios

Mensagem por Jairo Maia »

Olá Bencz,

O que exatamente você pretende? Alterar um arquivo binário? Você poderia explicar o propósito do que pretende? Se a idéia é alterar um arquivo binário com as funções de baixo nível é perfeitamente possível.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
bencz
Usuário Nível 4
Usuário Nível 4
Mensagens: 524
Registrado em: 28 Abr 2012 17:36
Contato:

Criando arquivos binarios

Mensagem por bencz »

Bom, com as funções de "baixo nível", digo, C, eu fiz uma função bem simples aqui para isso, mas, bem porca a minha função :'(

bom, então, queria saber, se tem uma forma diretamente no harbour, de fazer isso, criar e escrever arquivos binarios... (:
Imagem
Avatar do usuário
bencz
Usuário Nível 4
Usuário Nível 4
Mensagens: 524
Registrado em: 28 Abr 2012 17:36
Contato:

Criando arquivos binarios

Mensagem por bencz »

Sem comentarios essa minha duvida haha

resolvi ela da forma mais besta do mundo xD

Segue exemplo:

Código: Selecionar todos

PROCEDURE Main
  LOCAL nHandle := FCreate( "HELLO.COM" )
  
  FWrite( nHandle, chr(0xE8), len(chr(0xE8)) )
  FWrite( nHandle, chr(0x05), len(chr(0x05)) )
  FWrite( nHandle, chr(0x00), len(chr(0x00)) )
  FWrite( nHandle, chr(0xB8), len(chr(0xB8)) )
  FWrite( nHandle, chr(0x00), len(chr(0x00)) )
  FWrite( nHandle, chr(0x4C), len(chr(0x4C)) )
  FWrite( nHandle, chr(0xCD), len(chr(0xCD)) )
  FWrite( nHandle, chr(0x21), len(chr(0x21)) )
  FWrite( nHandle, chr(0x0E), len(chr(0x0E)) )
  FWrite( nHandle, chr(0x1F), len(chr(0x1F)) )
  FWrite( nHandle, chr(0xBA), len(chr(0xBA)) )  
  FWrite( nHandle, chr(0x12), len(chr(0x12)) )
  FWrite( nHandle, chr(0x01), len(chr(0x01)) )  
  FWrite( nHandle, chr(0xB4), len(chr(0xB4)) )
  FWrite( nHandle, chr(0x09), len(chr(0x09)) )
  FWrite( nHandle, chr(0xCD), len(chr(0xCD)) )
  FWrite( nHandle, chr(0x21), len(chr(0x21)) )
  FWrite( nHandle, chr(0xC3), len(chr(0xC3)) )
  FWrite( nHandle, "Hello World!", len("Hello World!") )
  FWrite( nHandle, chr(0x24), len(chr(0x24)) )
  
  FClose( nHandle )
RETURN
Imagem
Responder