domingo, 26 de junio de 2011

Anexo 4: Empaquetado/Desempaquetado de datos

"Houston, Houston , tenemos un problema"
Como os comente a la hora de guardar los datos, solo se guardaban las rutas de las imagenes y no la imagen en si (bueno, solo las miniaturas se guardan en "~/listin/mini").
Normalmente eso es efectivo, pero...
¿que ocurre si cambiamos de ordenador?
¿y si las imagenes “grandes” las tenemos en un disco duro externo?
¿podemos hacer una copia de seguridad de todos los dastos?


Pues bien para resolver estos problemas lo que vamos es a realizar es:
    • Crear y copiar en una carpeta "~/listin/fotos", todas las fotos con su tamaño original
    • modificar las rutas de las fotos y copiar los datos en una carpeta que llamaremos “~/listin/datos”
    • crear un archivo “ListadoGeneral.lis”, que tendra todos los datos accesibles al contenido de las carpetas “~/listin”
Para ello, en el formulario Fmain vamos a crear una nueva opcion en el menu que llamaremos “Crear Listado General”






Con el siguiente código:
PUBLIC SUB listadogeneral_Click()
importar.completo()
END
Ahora en el módulo importar, crearemos el procedimiento completo()
SUB completo()
'defino variables locales
DIM a AS Integer
DIM destino AS String
DIM lineas AS String
DIM codigofinline AS String
DIM fotoNuevaRuta AS NEW String[]


IF Exist("~/listin/") THEN
' Existe directorio , no necesito crearlo
ELSE
'no Existe el directorio s, hay que crearlo...
MKDIR "~/listin/"
ENDIF


'Crear y copiar en una carpeta "~/listin/fotos", todas las fotos con su tama ño original
IF Exist("~/listin/fotos") THEN
' Existe directorio , no necesito crearlo
ELSE
'no Existe el directorio , hay que crearlo...
MKDIR "~/listin/fotos"
ENDIF
'empiezo a copiar todas las fotos....
FOR a = 0 TO var.dni.COUNT - 1
'comando copiar desde consola
IF Exist("~/listin/fotos/" & File.NAME(var.foto[a])) THEN
'Existe no la copio
ELSE
COPY var.foto[a] TO "~/listin/fotos/" & File.NAME(var.foto[a])
ENDIF
NEXT
'modificar las rutas de las fotos y copiar los datos en una carpeta que llamaremos “~/listin/datos”
fotoNuevaRuta.Resize(var.dni.COUNT)
FOR a = 0 TO var.dni.COUNT - 1
fotoNuevaRuta[a] = "~/listin/fotos/" & File.NAME(var.foto[a])
NEXT




'crear un archivo “ListadoGeneral.lis”, que tendra todos los datos accesibles al contenido de las carpetas “~/listin”
destino = "~/listin/ListadoGeneral.lis"
codigofinline = "|"
Lineas = "v0.0.1" & codigofinline 'informo version
Lineas &= "listin.20100718" & codigofinline ' programa que ha echo el archivo
lineas &= var.id.COUNT & codigofinline 'numero de registros Existentes
FOR a = 0 TO var.id.COUNT - 1
Lineas &= var.id[a] & codigofinline
Lineas &= var.dni[a] & codigofinline
lineas &= var.nombre[a] & codigofinline
lineas &= var.apellidos[a] & codigofinline
lineas &= var.empresa[a] & codigofinline
lineas &= var.puesto[a] & codigofinline
lineas &= var.telf_empresa[a] & codigofinline
lineas &= var.telf_parti[a] & codigofinline
lineas &= var.fax[a] & codigofinline
lineas &= var.movil_empresa[a] & codigofinline
lineas &= var.movil_parti[a] & codigofinline
lineas &= var.pag[a] & codigofinline
'aqui meto la nueva ruta de las fotos
lineas &= fotoNuevaRuta[a] & codigofinline
'modifico la ruta de la foto original a la nueva foto
var.foto[a] = fotoNuevaRuta[a]
lineas &= var.direccion[a] & codigofinline
lineas &= var.observaciones[a] & codigofinline
lineas &= var.fecha_datos[a] & codigofinline
lineas &= var.correo[a] & codigofinline
NEXT
File.Save(destino, lineas)
'fin del proceso
END


Ahora toda la información (imagenes, miniaturas, datos), estan en el directorio “~/listin/” (User.Home & “/listin”. Se podria copiar a otro ordenador este directorio, y pegarlo en su User.Home, haciendose accesible su informacion completamente.

No hay comentarios:

Publicar un comentario