Página 1 de 1
harbour, leer la variable como archivo
Enviado: 03 Mar 2016 19:19
por MarcosLMG
Hola, tengo un problema, y no sé cómo solucionarlo, quiero leer un archivo y pasarlo a variable, y después leer la variable como archivo sin escribirlo en el disco, se puede hacer?
El programa espera leer por ejemplo “c:\imagenes\im.png” , pero yo quiero que lea directo de la variable (cvar) ¿SERA POSIBLE?
Gracias de antemano.
Código: Selecionar todos
procedure MAIN()
local FOTO := fopen("IM.png")
tam := fseek(FOTO,0,2)
fseek(FOTO,0,0)
cvar := space(tam)
fread(FOTO,@cvar,tam)
//-para prueba
FOTO := fcreate("prueba.png",0)
fwrite(FOTO,cvar,tam)
//-para prueba
fclose(FOTO)
inkey(0)
harbour, leer la variable como archivo
Enviado: 03 Mar 2016 20:08
por asimoes
Olá,
Pode fazer assim:
cTeste := hb_Memoread("IM.png")
hb_Memowrit("prueba.png", cTeste)
harbour, leer la variable como archivo
Enviado: 03 Mar 2016 20:29
por Toledo
ou simplesmente...
Código: Selecionar todos
cFile:="IM.png"
cNewFile:="prueba.png"
COPY FILE (cFile) TO (cNewFile)
Abraços,
harbour, leer la variable como archivo
Enviado: 03 Mar 2016 20:57
por asimoes
Ou
hb_Memowrit("prueba.png", hb_Memoread("IM.png"))
harbour, leer la variable como archivo
Enviado: 04 Mar 2016 10:18
por MarcosLMG
Hola asimoes, gracias por su pronta respuesta.
Pero yo no quiero crear el archivo, quiero que solo se pueda leer.
Ejemplo que claro no funciona.
Código: Selecionar todos
cTeste := hb_Memoread("IM.png")
bitmap := _load_bitmap("prueba.png",cTeste)
/*Se puede escribir algo similar a eso?*/
harbour, leer la variable como archivo
Enviado: 04 Mar 2016 15:56
por asimoes
Olá se é para somente ler o arquivo, basta usar hb_memoread()
Ou você pode usar a lib freeimage
Para usar a lib freeimage tem que usar hbfimage.hbc e a dll FreeImage.dll tem que estar presente na pasta do executável.
Um exemplo:
Código: Selecionar todos
FI_Initialise()
im := fi_Load( FIF_PNG, "im.png", PNG_DEFAULT )
nW := fi_GetWidth( im )
nH := fi_getheight( im )
FI_DeInitialise()
harbour, leer la variable como archivo
Enviado: 04 Mar 2016 16:03
por Jairo Maia
Olá Pessoal,
Será que o que ele quer não é exibir esse arquivo (figura)?
harbour, leer la variable como archivo
Enviado: 04 Mar 2016 17:03
por MarcosLMG
Hola, estoy usando HBDOS, compilado con DJGPP y librerías allegro.
El programa muestra imagen en pantalla asi _load_bitmap("prueba.png") //eso esta ok
-------------------------------------------------------------------------------------
Pero yo quiero que sea así, ejemplo
cTeste := hb_Memoread("prueba.png")
_load_bitmap (cTeste) // que muestre en pantalla la variable (cTeste).
Se puede leer la variable (cteste) como bitmap?
Gracias por su paciencia.
harbour, leer la variable como archivo
Enviado: 04 Mar 2016 18:16
por rochinha
Amiguinhos,
Pelo que entendi:
Hola, estoy usando HBDOS, compilado con DJGPP y librerías allegro.
El programa muestra imagen en pantalla asi _load_bitmap("prueba.png") //eso esta ok
A função _load_bitmap() recebe como parâmetro o nome do arquivo e não o conteúdo e então carrega a imagem.
La función _load_bitmap ( ) toma como parámetro un nombre de archivo y no el contenido y luego subir la imagen.
Pero yo quiero que sea así, ejemplo
cTeste := hb_Memoread("prueba.png")
_load_bitmap (cTeste) // que muestre en pantalla la variable (cTeste).
Mas aqui ele demonstra como deseja e desta forma não irá funcionar, pois o parâmetro da função é uma string com o nome e não uma string com conteúdo.
Pero aquí se demuestra cómo desea y por lo tanto no va a funcionar porque el parámetro de la función es una cadena con el nombre y no una cadena de contenido.
Vejam que eu não conheço estas funções nem suas bibliotecas mas ao ver da pra entender que o que ele deseja seja:
Usted ve que io no sabes estas funciones o sus bibliotecas, sino que ve el que entender que lo que quiere ser:
Não sei o intuito, mas imagino que ele esteja percorrendo um browse com nomes, e a cada nome seja apresentada sua imagem, como foto de empregados.
No sé el final , pero me imagino que él está caminando a través de un navegar nombres , y se muestra su imagen cada nombre como una foto de los empleados.
Resta saber se a função necessita de uma segunda função que faça um REFRESH ou limpe a área da foto anterior.
La cuestión es si la función requiere una segunda función que realiza una actualización o limpiar el área de la fotografía anterior.
harbour, leer la variable como archivo
Enviado: 04 Mar 2016 18:49
por MarcosLMG
Si entiendo.
Necesito una pista para que _load_bitmap tome el contenido de (cteste) como no nombre de archivo.
Gracias, Cualquier ayuda sirve

)
harbour, leer la variable como archivo
Enviado: 04 Mar 2016 19:51
por rochinha
Amiguinhos,
Os bitmaps manipulados pela biblioteca precisam ter um certo numero de cores, as funções não irão carregar bitmaps com muitas cores:
Los mapas de bits que maneja la biblioteca deben tener un cierto número de colores , las funciones no cargar mapas de bits con muchos colores:
Código: Selecionar todos
allegro_init()
set_color_depth(16)
bmp = create_bitmap(800,600)
clear_bitmap(bmp)
bmp := load_bitmap("imagem.bmp",NULL)
destroy_bitmap(bmp)
harbour, leer la variable como archivo
Enviado: 05 Mar 2016 00:48
por Nascimento
eu conheço essa lib, foi feita a um tempo atraz acho que em 2007 para games é uma ponte da allegro para harbour
por isso é complicado ele ter exito em perguntas sobre ela pois é exclusiva , ja resolvi muitos problemas dela ctrl+alt+del
harbour, leer la variable como archivo
Enviado: 07 Mar 2016 19:58
por JoséQuintas
A API do Windows, por exemplo, permite ler de arquivo em disco ou de conteúdo em memória.
Vai ter que pesquisar no seu uso, se existe função nessa biblioteca pra fazer o mesmo.
Não existe uma função pré-definida pra isso.
Cada uso/biblioteca/função pode querer a imagem num formato diferente.
harbour, leer la variable como archivo
Enviado: 07 Mar 2016 21:39
por Nascimento
como falei acima é uma lib criada para fazer uma ponte entre a allegro para o harbour,
foi feita exclusivamente para games e pouquissimas pessoas conhece o seu uso...
é bem parecido com o allegro original mais com pequenas diferenças
Ex:
Código: Selecionar todos
request HB_GT_ALLEG_DEFAULT
npcx(0,600,"abre.dat",0)
#ifdef DAT
fundo=_get_from_dat(datafilehandle,get_dat_index("TELARM_PCX"))
roleta=_get_from_dat(datafilehandle,get_dat_index("RM_PCX"))
marca=_get_from_dat(datafilehandle,get_dat_index("RMPOLIG_PCX"))
#else
if file("telarm.png")
fundo=_load_bitmap("telarm.png")
else
fundo=_load_bitmap("telarm.pcx")
end if
#endif
entao veja que é bem diferente da allegro original, falo isso porque detenho tanto a lib quando os codigos fontes que fiz em .c
e sim o que ele quer é possivel , mais dando pequenos ajustes no fonte original e recompilando-o