Red de conocimiento informático - Material del sitio web - Cómo almacenar imágenes en dbf

Cómo almacenar imágenes en dbf

Cómo guardar una foto de un campo universal en un archivo

Extraer una imagen o archivo (archivo .BMP, .DOC, .GIF o .JPG) de un campo universal en un .DBF

*---------------------------------------------- -- --- ------------

*-- Copie el contenido de un campo común .DBF a un archivo .BMP, .DOC, .GIF o .JPG ,

p>

*--Elimina toda la información de encabezado y pie de página agregada por el comando APPEND GENERAL.

*--Método de llamada=gentofil(nombre de campo,nombre de tabla)

&& parámetros lcfieldname,lcfilename

*********** ** **************************** ******************* **** ***********

***************************** ** *************************************************

*-- Para ejecutar el ejemplo, copie las tablas de muestra de VFP empleado.dbf, empleado.fpt, empleado.cdx al directorio donde se encuentran los archivos y establezca el directorio como directorio predeterminado. Luego, en la ventana de comando, escriba:

*-- do gentofil

*-- Esto hará que el programa de muestra obtenga la primera entrada en la tabla de empleados actual según las propiedades de el contenido del campo genérico. Copie el contenido de la fotografía del campo común del primer registro en la tabla de empleados actual al archivo empleado.bmp/employee.doc/employee.jpg/employee.gif.

********************************************* *** **********************************

******* *** **************************** ******************* ***** *************************

lcfieldname = "foto"

lcfilename = "empleado"

ESTABLECER DEFA EN c:\copygen

LOCAL lccompatible,lcextension,liendoffset,;

lctempfile,lihandelin,lihandleout,lisize,llsuccess

lccompatible = SET( " COMPATIBLE") && Guarde la configuración "Compatible"

SET COMPATIBLE ON && para que la función FSIZE devuelva el tamaño del archivo, no el tamaño del campo

IF "." $ lcfilename

lcfilename=LEFT(lcfilename,AT("." ,lcfilename))

ENDIF

lctempfile=SYS (3) && Especifique el nombre del archivo temporal

COPIAR A (lctempfile) FIELDS (lcfieldname) NEXT 1 &&Copiar el contenido del campo general a un archivo temporal

COPIAR A ( lctempfile) FIELDS (lcfieldname) NEXT 1 && Copie el contenido del campo general al archivo temporal

lihandlein=FOPEN(lctempfile+".FPT") && Abra su .FPT

* - - Examine el contenido del .FPT para determinar el tipo de documento incrustado

DO CASE

CASE FSEEK(lihandlein,590)>0 .AND.FREAD(lihandlein,2)="BM "

lcextension="BMP"

liendoffset=FSEEK(lihandlein,590)+83

*-- Nota: En el código fuente, el archivo .Note : En el código fuente, el 590 en la línea de código anterior es 599

CASE FSEEK(lihandlein,610)>0 .AND.ASC(FREAD(lihandlein,1))=208 .FREAD(lihandlein ,1))=17

lcextension="DOC "

liendoffset=FSEEK(lihandlein,610)+16798

CASO FSEEK(lihandlein,669)> 0 .AND.ASC(FREAD(lihandlein,1))=255 .AND .ASC(FREAD(lihandlein,1))=216 .AND.ASC(FREAD(lihandlein,1))=255

lcextension="JPG"

liendoffset=FSEEK(lihandlein ,648)+3779

*-- Nota: En el código fuente, 669 en la línea anterior es

648

CASO FSEEK(lihandlein,666)>0 .AND.FREAD(lihandlein,3) = "GIF"

.FREAD(lihandlein,3) = "GIF" p>

lcextension="GIF"

liendoffset=FSEEK(lihandlein,666)+3780

*--- Nota: En el código fuente, el 666 es 663

DE LO CONTRARIO