Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

Borrar este aviso
El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

Cuestión de alargar la vida al disco duro. Operaciones masivas con archivos
#1

Buenas!.

Os propongo un problema, un dilema moral. Tengo mil archivos de chicas del PlayBoy ( es coña, pero mi problema es parecido).
En un archivo zip tengo la foto de la chica y un archivo txt. El nombre del archivo zip no es muy aclaratorio por este no puedo
entender quien es la chica o más datos. Pero en el archivo de texto si viene toda la información referente a ella.

La idea es que tomando cada uno de esos archivos de descripción puedo crear una base de datos y localizar más
fácilmente a la/s chicas que busco. Pero no me gustaría tener que descomprimir toda esa información al disco.

- Descomprimir el zip en una carpeta temporal
- Ir a la carpeta y abrir el archivo de descripción
- Leer la descripción e ir convirtiendo esos datos a campos y crear un registro
- Eliminar la carpeta temporal
- Repetir...

Ahora supongamos que son mil archivos cada uno con dos archivos, dos mil...etc,etc.

¿ No seria posible en vez de escribir esos datos a disco duro real a algo como la memoria y hacer todas las operaciones en la memoria evitando el desgaste del disco duro ?.
No dudo que haya ciertas operaciones que hay que usar el disco. En el caso de las imágenes no se suele ganar mucho comprimiendolas a menos que sea un formato distinto.
Zip no está pensado para estas. Pero no es el caso, esto es tan solo una tarea similar que tengo que hacer con otro tipo de archivos.

¿ Qué se suele usar para casos de este tipo de operaciones ?. ¿ El disco ?. Vaya paliza tendría que ser eso.

Saludos

¿ Habéis probado algo como esto ?.

Crea un «RAMDisk» en tu distribución Linux

Digo yo que para determinadas operaciones es necesario. ¿ Es lo que suele usar el programador ?.

Saludos

“Nunca confíes en un ordenador que no puedas lanzar por la ventana” – Steve Wosniak
#2

Yo pienso que estas un poquito equivocado con relación al uso de los zip; o tu te equivocas o soy yo.

El archivo zip cuando lo lee un programa Zip por ejemplo 7zip, lo que hace no es descomprimirlo para que tu lo visualices, lo que hace es hacer una imagen gráfica de su interior y presentarte un informe de ella en pantalla y después por otro lado, si tu decides extraer o leer directamente un txt pues entonces se pone en marcha a descompresión.

Por lo tanto, abre el archivo zip y dí abrir archivo txt para ver y comparar el interior del txt con lo que buscas en el visor zip.

Eso es lo mas rápido y con 0 programación.

Nota: Estaba bien tu filosofía pero no creo que el creador de 7zip o de Winzip sea tan tonto como para descomprimir lo que vas a visualizar, eso sino recuerdo mal pasaba en sus primeras versiones, te invito que visualices un zip en Windows y veras que solo lo ve y no lo descomprime hasta que no quieras algo de su contenido.
#3

(27-07-2020, 14:05)gambafeliz escribió:  El archivo zip cuando lo lee un programa Zip por ejemplo 7zip, lo que hace no es descomprimirlo para que tu lo visualices, lo que hace es hacer una imagen gráfica de su interior y presentarte un informe de ella en pantalla y después por otro lado, si tu decides extraer o leer directamente un txt pues entonces se pone en marcha a descompresión.

Claro, pero voy a usar código. Voy a tener que abrir esos archivos de descripción para poder leer su contenido. Si fueran pocos archivos no hay problema.
Pero yo hablo de mas de mil archivos. Son archivos que pueden pesar poco, pero son muchos.

No creo que lo mejor sea usar un visor con mas de mil archivos. Se me van a caer las pestañas.. Rolleyes

Tenemos el administrador de compresores en Linux..eeeeeh, no necesitamos usar Windows para estas tareas!.   Tongue

Fijo que encuentro una referencia a esta antigua base de datos. Online existe.

GameBase

Saludos

“Nunca confíes en un ordenador que no puedas lanzar por la ventana” – Steve Wosniak
#4

Shell: Comprenedo lo que querés hacer. Me parece que tengo un código por ahí que hace algo similar y se podría adaptar, lo busco y te digo algo.

Ya esta, creo que con este código vas a extraer todo lo que este en el archivo.txt de un zip. luego fijate el nombre del .txt si es variable habrá que dar un rodeo pero si es siempre el mismo te bastara con poner el nombre correcto en el código. y meter esto dentro de tu loop que recorre archivos del disco.
Saludos.
GAMBAS
  1. '' Lee un archivo de texto dentro de un zip.
  2. '' strZip es la ruta completa del archivo zip
  3. '' strFile es la ruta relativa del archivo txt dentro del zip
  4. Public Function ReadZip(strZip As String, strFile As String) As String
  5.   Dim sData As String
  6.   If Exist(strZip) = True Then
  7.     Shell "unzip -p '" & strZip & "' " & strFile & " 2>&1" To sData
  8.   Return sData


#5

Tincho:

Ok, gracias. Wink

Saludos

“Nunca confíes en un ordenador que no puedas lanzar por la ventana” – Steve Wosniak
#6

Ok, creo que había olvidado poner el código, ahora ya esta disponible.
Saludos.
#7

Curiosamente también existen formas en Linux de listar el contenido de un fichero comprimido sin tener que descomprimirlo. Aquí van algunas:
.
  • El famoso comando "less" puede listar por defecto varios tipos de archivo conocidos, como .tar, .gz, .tgz y .zip. No me ha funcionado con bz2
  • Para zip, se puede usar "unzip -l". El modificador L minúscula lista el contenido sin descomprimir.
  • Para bz2 hay otra utilidad que se llama bzcat. Tan fácil como bzcat fichero.bz2
  • zipinfo también funciona para archivos zip y viene por defecto en el sistema operativo...
Luego ya es cuestión de redirigir la salida del comando a una variable o a un textbox para mostrar el contenido. Recomiendo probar primero el terminal para comprobar que la salida es correcta.

Espero que sirva de ayuda, saludos señores!

Por favor, usa el corrector ortográfico antes de pulsar el botón 'Enviar'
#8

Genial!. Wink

Con esto no es necesario complicarse con "disco ram" por llamarlo de alguna manera.

Saludos

“Nunca confíes en un ordenador que no puedas lanzar por la ventana” – Steve Wosniak


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)