Página 1 de 1

Criando arquivos binarios

Enviado: 17 Jul 2013 09:44
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 ?

Criando arquivos binarios

Enviado: 19 Jul 2013 07:47
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.

Criando arquivos binarios

Enviado: 19 Jul 2013 10:41
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... (:

Criando arquivos binarios

Enviado: 25 Jul 2013 17:18
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