Shell   27-07-2020, 12:35
#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
Última modificación: 27-07-2020, 12:45 por Shell.

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
gambafeliz   27-07-2020, 14:05
#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.
Shell   28-07-2020, 12:21
#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

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
tincho   28-07-2020, 15:39
#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.
Código:
'' Lee un archivo de texto dentro de un zip.
'' strZip es la ruta completa del archivo zip
'' strFile es la ruta relativa del archivo txt dentro del zip
Public Function ReadZip(strZip As String, strFile As String) As String
  Dim sData As String
  If Exist(strZip) = True Then
    Shell "unzip -p '" & strZip & "' " & strFile & " 2>&1" To sData
  Endif
  Return sData
End
Última modificación: 29-07-2020, 14:05 por tincho.

1 Saludo.
Shell   29-07-2020, 13:24
#5
Tincho:

Ok, gracias. Wink

Saludos

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
tincho   29-07-2020, 14:06
#6
Ok, creo que había olvidado poner el código, ahora ya esta disponible.
Saludos.

1 Saludo.
jguardon   29-07-2020, 21:15
#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'
Shell   31-07-2020, 12:01
#8
Genial!. Wink

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

Saludos

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
  
Usuarios navegando en este tema: 1 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.