home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-05-04 | 54.2 KB | 1,245 lines |
- ------------------------------------------------------------------------------
- TIPO DE DOCUMENTO : MANUAL DE USUARIO DE X1
- LENGUAJE : ESPAÑOL
- TIPO DE TEXTO : ASCII SIN FORMATO
- JUEGO DE CARACTERES : IBM-PC ASCII
- VERSION DEL PROGRAMA : X1 v0.94e (beta)
- ULTIMA ACTUALIZACION (mm-dd): 960430
- ULTIMA NOTA DE REVISION : TEXTO PRELIMINAR -- PUEDE HABER MODIFICACIONES
- TRADUCIDO POR : J. Lupión
- -------------------------------------------------------------------------------
-
- IMPORTANTE: No utilice este programa antes de haber leído, comprendido
- y aceptado los términos dispuestos en la licencia de uso.
-
-
- ============================
- MANUAL DE USUARIO DE X1
- UNA VISION GENERAL
- ============================
-
- 1. Requerimientos mínimos de hardware.
- 2. ¿Qué es? (resumen)
- 3. Cómo usar X1 (formato de la línea de ordenes y repaso de las órdenes
- y opciones)
- Formato de la línea de órdenes
- Reglas de sintaxis de la línea de órdenes
- Ordenes de X1
- Funciones de X1
-
- 4. Variables de entorno (módulo de lenguaje)
- 5. Formatos y métodos de compresión (visión general y ejemplos)
- 6. Nombres de los ficheros temporales.
- 7. Códigos de salida.
-
-
-
-
- 1. Requisitos
- =============
-
- CPU : 386sx o superior
- RAM : Se recomienda un mínimo de 4Mb de memoria.
- S.O. : DOS 3.3 (o posterior)
- OS/2 (32-bits)
-
- Para conseguir los mejores resultados, se recomienda obtener la versión del
- programa específica para su sistema operativo.
-
- Tenga en cuenta que la memoria que X1 dice detectar es la cantidad de
- memoria que el gestor DPMI le dice que existe -que es la memoria realmente
- "visible"-. Dependiendo del administrador de memoria (DOS, OS/2...) puede
- incluso estar empleando memoria virtual basada en disco, en cuyo caso
- el valor visualizado puede ser incluso superior a la cantidad de memoria
- física instalada en su sistema. Sin embargo, desde el punto de vista de
- X1, es de menor importancia cómo se administra la memoria que cuánta
- memoria le permite emplear el gestor de memoria.
-
-
- 2. ¿Qué es?
- ===========
-
- Este programa es un compresor, es decir, comprime varios ficheros en un único
- archivo. Se maneja, en su totalidad, desde la línea de órdenes (o prompt
- del sistema) y los procesos de compresión y extracción están combinados
- en un único programa. En el compromiso entre velocidad, memoria y tamaño del
- archivo, X1 favorece este último aspecto e intenta hacer el máximo uso posible
- de los recursos del sistema en que se ejecuta.
-
- Sus características principales son:
-
- * Introducción del nuevo formato propio .X
- * Compatible con ARJ,(PK)ZIP,LHA(RC),ZOO,HA,RAR
- * Interfaz de usuario con múltiples idiomas.
- * Contiene métodos "experimentales" como resultado de la exploración de
- algoritmos de alto rendimiento. "Experimental" no significa inestable, sino
- más bien que el método puede no ser soportado en versiones futuras de X1.
-
- El interfaz de la línea de órdenes es similar al de ZOO y HA, pero las
- letras de las opciones se parecen más a las de ARJ y LHA, teniendo poco que
- ver con PKZIP. Con un poco de conocimiento de los compresores más
- populares, debería ser posible pasar por alto algunas partes de la
- documentación.
-
- 3. Cómo usarlo (formato de la línea de órdenes y repaso de las órdenes y
- =============== opciones)
-
- A continuación sigue es la especificación del programa. Si X1 se comporta
- de forma diferente, entonces se debe bien a un error o a un fallo en
- la implementación de la función en cuestión, de acuerdo con esta especificación.
-
- El decir que X1 es un "compresor" producirá un número de expectativas, basadas
- en las capacidades de otros compresores. Consecuentemente, no sólo es importante
- decir lo que hace, sino también lo que NO ha sido implementado.
-
- Si lo mencionado en el texto aún no ha sido implementado, la sección será
- precedida por un mensaje "**No implementado**". Estos mensajes irán
- disminuyendo en número en futuras versiones en el programa.
-
- Formato de la línea de órdenes
- ------------------------------
-
- X1 orden[<opciones>..] <archivo> [<especificación de ficheros>..]
-
- Definiciones:
-
- orden[<opciones>..] Sólo se permite una orden (el primer carácter)
- seguida por una serie de opciones -sin espacios
- entre orden y opciones ni entre las opciones-.
- <archivo> Es el nombre del archivo, la extensión por defecto es ZIP
-
- <esp. de ficheros>.. Son los ficheros a archivar, por defecto se consideran
- todos los ficheros si no se especifica ninguno. Se
- pueden utilizar los comodines (*,?).
-
- Reglas de sintaxis de la línea de órdenes
- ------------------------------------------
- Ordenes y opciones pueden especificarse bien en mayúsculas o en minúsculas.
-
- Tenga en cuenta que X1 tiene dos opciones de exclusión del trayecto en lugar de
- una como suele ser habitual en otros compresores. Esto es consecuencia de
- las reglas #1 y #2.
-
-
- * Regla #1 (inclusión del path):
- -----------------------------
- Por defecto, todos los trayectos mencionados en la línea de órdenes se
- añaden al archivo -a no ser que se active la opción X.
-
- * Regla #2 (inclusión del path):
- -----------------------------
- Por defecto, todos los trayectos encontrados durante la búsqueda
- recursiva (opción "R") se añaden al archivo -a no ser que se active la
- opción E-. Esto es algo diferente a como lo hacen los otros compresores.
-
- * Regla #3 (varias especificaciones con respecto al mismo directorio):
- -------------------------------------------------------------------
- Con especificaciones sin un path explícito, se asume el path de la
- especificación anterior.
-
- Sea "x1 a test <arg[1]> .. <arg[i]> <arg[i+1]>.."
-
- Si <arg[i+1]> no contiene el carácter "\" ("/") o ":" entonces se asume
- que trabaja en el mismo directorio que <arg[i]> (que a su vez puede
- trabajar bajo el bajo el mismo directorio que <arg[i-1]>, etc.)
-
- ¿Qué significa esto? Significa que:
- "x1 a prueba \dir1\dir2\*.c *.h"
- hace lo mismo que:
- "x1 a prueba \dir1\dir2\*.c \dir1\dir2\*.h"
-
- ¿Qué NO significa esto? Bien,
- "x1 a prueba dir1\*.c dir2\*.h"
- << NO >> hace lo mismo que
- ^^^^^^^^
- "x1 a prueba dir1\*.c dir1\dir2\*.h"
- porque "dir2\*.h" contiene un "\".
-
- Igualmente,
- "x1 a prueba dir1 *.c"
- no funciona como
- "x1 a prueba dir1\*.* dir\*.c"
-
- que realmente no tendría sentido.
-
- La justificación para este convenio es única y exclusivamente el
- ahorrar pulsaciones (obsérvese que no hizo falta repetir "\dir1\dir2\"
- en la línea de órdenes en el primer ejemplo.
-
- ¿Efectos laterales o inconvenientes? Si quiere los ficheros del
- directorio actual, debe especificarlos TODOS antes de incluir los
- directorios. Sin embargo este convenio no debería restringir al
- usuario de ninguna manera.
-
-
- Regla #4 (directorios incluídos en el archivo):
- ----------------------------------------------
-
- Especificar un nombre de directorio en la línea de órdenes implica la
- compresión de todos los ficheros de ese directorio. Obsérvese que
- "x1 a prueba \dir1\dir2"
- produce el mismo resultado que
- "x1 a prueba \dir1\dir2\" y que
- "x1 a prueba \dir1\dir2\*.*"
- Si se indica la opción de recursión, TODOS los ficheros por debajo de
- \dir1\dir2 serán también procesados.
-
- ¡Pero cuidado! Si los nombres de fichero son idénticos a los nombres
- de trayecto puede no ser obvio cuál será el resultado final...
-
-
- ===========
- = ORDENES =
- ===========
-
- H (visualiza comentarios de ayuda)
- ---------------------------------
-
- Esta orden sólo se emplea en el contexto "x1 ?", y visualizará un breve
- resumen de las órdenes y opciones. La página que se muestra NO ES la misma
- que sale cuando se ejecuta el programa sin parámetros. Si no se especifican
- parámetros, sólo se listan las órdenes posibles (entre ellas, "?").
-
- Si la información se imprime demasiado deprisa, se recomienda dirigirla a
- un fichero ("x1 ? >archivo.lst") que puede ser posteriormente visualizado con
- su visor favorito (F3 en El Comandante Norton) o en su editor favorito.
-
- X1 habla muchos idiomas. Sin embargo, algunas lenguas fueron más difíciles de
- comprender que otras, así que no podemos garantizar que el significado de
- los mensajes sea cristalino. En caso de duda, deberían consultarse las
- páginas en inglés, danés, francés, alemán y español (¡en este orden de
- prioridad!)
-
- (En PC) Si la configuración de página de códigos de su ordenador está mal,
- el resultado será que faltarán caracteres. Es recomendable tomarse el
- tiempo necesario para configurar la página de códigos correctamente.
-
- A (añadir ficheros al archivo)
- ----------------------------------
- Opciones válidas: $,A,C,E,F,I,K,L,M,N,O,R,S,T,U,V,X,Y,Z
-
- Esta orden tiene dos modos de operación:
- * crear un archivo y añadir ficheros...
- * actualizar (re-abrir) el archivo y añadir más ficheros...
-
- Esta orden, básicamente, comprime y añade los ficheros especificados a un
- archivo. En el caso de que el archivo nombrado no exista se crearía uno con
- ese nombre. Si existe, entonces se actualiza. Esto significa que nuevos
- ficheros con los mismos nombres que otros ficheros ya existentes en el
- archivo sobreescribirán a éstos. Existen unas pocas excepciones (cuando
- se comprimen módulos sólidos), pero su explicación se encuentra ahora fuera
- de contexto.
-
- Si se omite un directorio base, se asume que el directorio actual será el
- directorio por defecto.
-
- Si no se especifican ficheros en la línea de órdenes, todos los ficheros
- (en el directorio por defecto) serán añadidos. Esto significa que "x1 a
- prueba test.x" comprime todo lo que haya en el directorio por defecto.
-
- De ninguna forma es posible comprimir un archivo que está siendo actualizado
- dentro de sí mismo.
-
- Si no se especifica la extensión del archivo comprimido, entonces se supone
- la extensión ZIP. Si desea comprimir a otro formato, es necesario
- especificar en el archivo la extensión de ese formato (ARJ,LZH,...). No es
- posible comprimir en archivos con extensiones arbitrarias.
-
- Se puede evitar que algunos ficheros sean incluidos con el uso de la opción
- "Z".
-
- Ejemplo (compresión en formato propio ): x1 a archivo.x mi_fich.doc
- Ejemplo (compresión en formato ZIP): x1 a archivo.zip mi_fich.doc
-
-
- C (añadir comentarios al archivo)
- --------------------------------
- **No implementado**
- Opciones válidas: I,C
-
- Esta orden añade comentarios a un archivo. Pueden incluirse comentarios en los
- formatos ARJ,ZIP,ZOO y X pero no en los LHA y HA, debido a diferencias en las
- estructuras de encabezamiento.
-
-
- D (borrar ficheros de un archivo)
- --------------------------------
- Opciones válidas: I,S,Z
-
- Para ser borrada, la entrada correspondiente en el archivo tiene que ser igual
- que un argumento de la línea de órdenes (se ignoran mayúsculas y minúsculas)
-
- Si una especificación no contiene un trayecto, entonces surte efecto para
- todas las entradas del archivo, sin tener en cuenta sus directorios. Esto
- quiere decir que
-
- "x1 d prueba.x *.pas"
- borrará incluso las entradas "dir1\dir2\*.pas" en el fichero (si las hay).
- Por otro lado,
- "x1 d prueba.x dir1\dir2\*.pas"
-
- sólo eliminará el último tipo de ficheros.
-
- Si se solicita el borrado de todos los ficheros, entonces el mismo archivo
- es eliminado (borrado).
-
- Los nombres de fichero pueden ser excluídos del borrado con la opción "Z".
-
- Ejemplos:
- (borrado de múltiples entradas): x1 d archivo.x *.pas *.doc
- (borrado de un archivo completo): x1 d archivo *.*
-
-
-
- E (extraer ficheros sin trayecto)
- --------------------------------
- Opciones válidas: $,A,F,I,N,O,T,W,Y,Z
-
- Esta órden es idéntica a "X" con la opción "E". Está incluída aquí sólo
- debido al consenso general entre programas compresores de utilizar esta orden.
-
- Durante la descompresión o extracción, la fecha y hora de los ficheros son
- restauradas junto con los contenidos. Se lleva a cabo un control de CRC para
- verificar que la operación ha tenido éxito. Sin embargo, el fichero se verifica
- ANTES de escribir al disco, en lugar de una comprobación de lectura y
- verificación.
-
- Los ficheros se pueden extraer a un directorio especificado por el usuario u
- otra unidad, pero por defecto, los ficheros se descomprimen en el directorio
- actual. Todas las extracciones se hacen sin trayectos (es decir se
- descomprime todo en un único directorio)
-
- Cuando se extrae a un directorio específico, entonces el nombre de directorio
- debe terminar con "/" o "\" como en "x1 e prueba.x c:\dir\". Si no se termina
- el nombre de directorio con tal carácter entonces X1 asumirá que se intenta
- extraer del archivo un único fichero.
-
- Cuando se extrae a un directorio que no existe (especificado en la línea de
- órdenes), se advertirá al usuario de ello y se le consultará antes de tomar
- ninguna acción. El mensaje de advertencia presenta distintas soluciones desde
- "si" (crear directorio por esta vez) a "nunca" (no crear nunca directorios).
- El usuario responde tecleando la letra entre paréntesis. Las letras y mensajes
- pueden cambiar para diferentes módulos de idiomas. Es posible responder
- automáticamente a las preguntas activando una de las opciones "Y" o "N".
-
- Cuando se extrae a una unidad en concreto, se permite que la especificación
- termine con ":" como en el ejemplo "x1 e prueba.x a:". Esto se debe a que se
- asume que ningún nombre válido de fichero termina en tal carácter. Si se dan
- varios directorios o unidades de destino "x1 e prueba.x a: b: c:" entonces
- la última unidad (o directorio) especificada será empleada en la extracción.
-
- Si se intenta extraer un fichero con el mismo nombre que un directorio ya
- existente el fichero extraído se pasará por alto (a no ser que se active
- la opción de "Sobreescritura Inteligente" con la opción "W").
-
- En el caso de que se intente extraer un fichero con el nombre de otro ya
- existente, se advertirá al usuario de esta incidencia y se le consultará antes
- de tomarse ninguna acción. La única excepción a esta regla son los ficheros
- de tamaño nulo (0 octetos), ya que se considera que no contienen ninguna
- información valiosa y se pueden sobreescribir sin advertencias. La pregunta
- que se formula al usuario permite diferentes respuestas, desde "sí"
- (sobreescribe el fichero por esta vez) a "nunca" (no sobreescribir jamás).
- El usuario debe responder introduciendo la letra entre paréntesis.
-
- Por ejemplo:
- (extraer archivo): x1 e archivo.x file_id.diz
-
-
- F (refrescar los ficheros ya existentes en el archive)
- ------------------------------------------------------
- **No implementado**
- Opciones válidas: E,F,I,X
-
- Esta orden cambia un fichero que se encuentra dentro del archivo comprimido por
- una versión más moderna, de ser posible. Esto significa que los nombres y el
- número total de ficheros dentro del archivo permanece constante. Sólo cambia el
- contenido de los ficheros ya archivados.
-
- A la hora de buscar ficheros más modernos que los existentes, sólo se comprueban
- la fecha y hora. Si los ficheros son más antiguos -o tienen igual fecha y hora
- aunque tamaño diferente- entonces no se tienen en cuenta a la hora de refrescar.
-
- Podrían surgir conflictos en caso de que el archivo contenga entradas con
- trayectos completos. ¿Debería ser necesario especificar estas entradas
- explícitamente? La respuesta escogida es: ¡no!. En vez de eso hay es
- necesario excluirlas con la opción "E" -si por algún motivo no deben
- refrescarse como los otros ficheros.
-
- De forma similar a la orden "A", si no hay ficheros especificados en la
- línea de órdenes, se intentan refrescar todos los ficheros presentes en el
- archivo. Esto significa que "x1 f prueba.x" intenta refrescar todos los
- ficheros en "prueba.x", mientras que "x1 f prueba.x *.pas" sólo intenta
- refrescar los ficheros *.pas (incluyendo posiblemente los ficheros
- dir1/dir2/*.pas). Para excluir que estos últimos sean excluidos hay utilizar
- "x1 fz prueba.x *.pas dir1/dir2/*.pas"
-
- Ejemplo:
- (refrescar todos los ficheros) "x1 f prueba.x"
-
- L (listado del contenido del archivo)
- -------------------------------------
- Opciones válidas: E,I,O,Z
-
- Esta orden muestra la información usual acerca de los contenidos del archivo,
- incluyendo:
-
- * trayecto completo
- * tamaño original y comprimido
- * índice de compresión (% comprimido/descomprimido)
- * fecha (de la forma día-mes-año)
- * hora (de la forma horas-minutos-segundos)
- * CRC (16-32 bits)
- * atributos del fichero, al estilo DOS.
- * método de compresión (identificado por un número en lugar de un nombre)
-
- Un asterisco "*" añadido al final de un nombre indica que el fichero está
- encriptado y por tanto no puede ser extraído.
-
- Se intenta "encajar" en las columnas los nombres de los trayectos completos.
- Si hay espacio completo para los nombres largos se muestran en la misma línea
- que la información adicional. En caso contrario, se pone una línea para el
- nombre del fichero y la información adicional se mueve a la línea siguiente.
-
- Es posible mostrar todos los archivos de formatos específicos con "x1 l *.lzh"
- o de todos los archivos reconocidos por el compresor "x1 l *" (que sólo
- comprueba ficheros con una extensión conocida ARJ,ZIP,etc..) Es posible
- mostrar sólo ficheros específicos "x1 l *.zip file_id.diz" o múltiples
- ficheros como en "x1 l *.zip *.nfo *.diz".
-
- Si la información se muestra demasiado deprisa, se recomienda dirigir la
- salida a un fichero ("x1 l *.zip > archivo.lst") que puede ser luego
- visualizado con su visor favorito (F3 en El Comandante Norton) o en su editor
- favorito.
-
- Por ejemplo:
- (listar todos los *.ARJ, *.ZIP...): x1 l *
-
-
- T (comprobar la integridad del contenido de un archivo)
- -------------------------------------------------------
- Opciones válidas: E,F,I,O,Z
-
- Esta orden en realidad tiene dos modos de operación o motivos:
- * verificar que el archivador no ha cometido errores durante la compresión.
- * buscar errores infligidos en el archivo durante la transmisión (errores
- del medio de almacenamiento o del canal de transmisión)
-
- Con mucho, el primer tipo de error es el más alarmante. Por eso es el error
- que se comprueba usualmente. Así, los datos del archivo se desempaquetan
- en memoria.
-
- Para asegurar el éxito de la posible extracción, se proporciona una función de
- validación mediante un test de CRC (código de redundancia cíclica). Aunque el
- proceso no es 100% seguro, es usualmente suficiente para la mayor parte de
- casos prácticos.
-
- Es posible comprobar los contenidos completos de varios archivos: "x1 t *.zip",
- ficheros individuales en un grupo de archivos "x1 t *.zip *.doc" o ficheros
- individuales en archivos individuales "x1 t archivo.x leeme.doc"
-
- Si se asume que el compresor ha hecho su trabajo apropiadamente, entonces
- se puede hacer una comprobación de CRC más simple y rápida. Esta comprobación
- se hace con la opción F. ¿Cómo saber si el compresor ha hecho su trabajo bien?
- Bien, inténtese una comprobación de CRC tradicional una sola vez (inmediatamen-
- te después de la compresión). Si no hay errores, después sólo pueden esperarse
- errores de CRC debidos a la transmision o almacenamiento defectuosos.
-
- Se informa al usuario acerca de diferencias entre el CRC almacenado y el valor
- de CRC calculado. En caso de errores, es muy poco probable que los datos
- puedan ser recuperados (a no ser que se haya empleado alguna forma de ECC
- -código corrector de errores-). Es posible a menudo actualizar ficheros con
- errores de CRC, pero no podemos recomendarlo.
-
- Si se trabaja con archivos sólidos, las comprobaciones de CRC pueden tardar un
- tiempo superior al normal. Esto se produce debido al hecho de que la extracción
- puede presuponer la descompresión de otro fichero. En modo sólido, los datos se
- comprimen en su conjunto como un flujo continuo y esto reduce la accesibilidad.
-
- Ejemplo:
- (comprobar todos los ficheros): "x1 t prueba.x"
-
- P (proteger el archivo contra errores)
- --------------------------------------
- Opciones válidas: I,L
-
- Esta orden hace que se añada al archivo un código corrector de errores (ECC),
- lo cual debería proteger al archivo, hasta cierto punto, de posibles errores
- posteriores de transmisión o almacenamiento.
-
- No es posible añadir un mismo tipo de ECC más de una vez. En lugar de utilizar
- métodos simples más de una vez se recomienda usar una técnica más sofisticada
- que implique un mayor gasto en tamaño.
-
- Al igual que los métodos de compresión sobre datos tienen diferentes
- rendimientos, los métodos de corrección de errores deben ser optimizados para
- clases concretas de errores. A no ser que se proceda así, el resultado será
- un costo mayor con un resultado pobre. Por tanto, en el futuro estarán
- disponibles una gama más amplia de métodos de protección contra errores.
-
- El método de protección por defecto es el "ECC de nivel 1".
-
- ECC de nivel 1:
-
- Este tipo de código de ECC está pensado para el usuario casual, que quiere
- una seguridad baja con sólo un mínimo de coste en término de tamaño extra. ¡Sólo
- puede compensar la pérdida de un sector! El tamaño del sector es configurable,
- por defecto es de 512 octetos. Si se quiere compensar para errores de más de
- un sector, se deben utilizar mayores niveles de protección. Si se protege un
- sector de N octetos de longitud, el coste de tamaño adicional será de N+48
- octetos. Los 48 octetos cubren una cabecera incluyendo su propio CRC, un CRC
- del fichero completo y vectores de prueba empleados para localizar errores más
- rápidamente. Los datos del ECC serán colocados en un bloque continuo al
- comienzo del fichero.
-
- ECC de nivel 2:
- Aún por implementar.
-
- *ATENCION* Los métodos correctores de errores sólo corrigen un número limitado
- de errores. Un método sólo corregirá errores de acuerdo con su especificación,
- por tanto no espere la corrección de errores más allá de la misma. La corrección
- de errores sólo proporciona una seguridad limitada. Es importante no tener
- una fé ciega en los métodos.
-
- Ejemplo:
- Para proteger contra la pérdida de un único sector de 512 octetos (disco floppy)
- la orden a usar es "x1 p prueba.zip" ó "xm1 p prueba.zip". Para añadir una
- protección ECC1 de 1024 octetos por sector (que son 2x512, de aquí m2) la
- orden a usar es "x1 pm2 test.zip"
-
- R (reparar el archivo ante posibles errores)
- --------------------------------------------
- Opciones válidas: I
-
- Esta orden tiene dos propósitos o modos de operación:
- * Reparar errores en el archivo.
- * Sólo verificar que el archivo está libre de errores.
- Una comprobación de CRC sólo investiga las entradas de ficheros comprimidas
- en el archivo -no la existencia de ECCs posiblemente erróneos-.
- Obviamente el "test extendido" puede (debe) ser únicamente llevado a cabo
- si hay en efecto un ECC que comprobar.
-
- Reparación de un archivo con protección ECC:
- Esta operación elimina los errores -bien en los datos del ECC o en los datos
- reales que debe proteger. Un mensaje advertirá si los errores no son suscep-
- tibles de ser corregidos, en cuyo caso no se tomarán más acciones.
-
- Reparación de un archivo sin protección ECC:
- Este no ha sido nunca el propósito de esta orden. En X1 no hay una función
- genérica de "reparación" de archivos dañados. En lugar de eso se insta al
- usuario a que intente la extracción del archivo y re-archive los datos
- de nuevo. Los problemas que plantea una función de reparación genérica
- son bien conocidos por el programa "PKZipFix" que viene con el compresor
- "PKZIP". El programa de reparación sólo actualiza la estructura de cabecera
- del archivo -sin comprobar la integridad de los ficheros individualmente-.
- Después de esto se pueden añadir ficheros al archivo. Sin embargo, sin un
- test de integridad, no hay forma de saber si el archivo contiene otros errores.
- El no comprobar esta posibilidad puede provocar una falsa sensación de seguridad.
- Parece más atractivo permitir sólo la extracción del archivo -permitiendo al
- usuario verificar directamente el número de errores. Si hay archivos comprimidos
- almacenados dentro del archivo en cuestión, existen la peligrosa posibilidad de
- que haya errores. En tales casos, lo mejor ese que el usuario intente evaluar
- la situación. Si de alguna forma los usuarios estuviesen interesados (y deseando
- pagar), entonces podría construirse un programa avanzado de recuperación de
- errores para alguno o todos los formatos diferentes de compresión. Pero ello
- no cambiará el hecho de que la mayor parte de los errores normalmente son
- irrecuperables.
-
- Ejemplo: "x1 r prueba.x"
-
- U (desproteger archivo - eliminando código corrector de errores)
- ----------------------------------------------------------------
- Opciones válidas: I
-
- Esta orden deshace la acción efectuada por la orden "P". Se intentarán borrar
- todos los códigos de ECC disponibles. Los fallos en la localización del
- código ECC pueden deberse a dos razones: que no haya códigos ECC o que haya
- errores en la cabecera que impidan la localización del código ECC. En el
- segundo caso debería recomendarse el intentar eliminar los errores.
-
- Se recomienda comprobar si hay errores antes de eliminar el código ECC.
- Aunque el proceso se las puede arreglar para localizar el código ECC el archivo
- puede aún contener errores en otras posiciones del fichero. No se hace
- ningún tipo de comprobación de errores cuando se elimina el código ECC
- (para acelerar el proceso).
-
- X (extracción de ficheros con trayectos completos)
- --------------------------------------------------
- Opciones válidas: $,A,E,F,I,N,O,T,W,Y,Z
-
- La diferencia fundamental con la orden "E" es que los ficheros son
- descomprimidos con el trayecto completo (tal y como está almacenado en el
- archivo). Los trayectos completos pueden verse antes de la extracción con
- la orden "L".
-
- Los ficheros pueden extraerse a un directorio o unidad especificados por el
- usuario pero por defecto los ficheros se descomprimen en el directorio
- actual y los subdirectorios posibles son construidos según se necesite a partir
- de este directorio base. Algunos trayectos no pueden ser empleados como
- extensión del directorio base, y son aquellos que contienen nombres de
- unidad o especifican trayectos desde el directorio raíz. Tales trayectos
- serán posicionados en el disco de acuerdo a sus especificaciones absolutas.
-
- Cuando se extrae a un directorio o unidad específicos, los subdirectorios
- serán construidos desde la posición dada. Por ejemplo "x1 x prueba.x a:"
- intentará extraer todos los ficheros a A: (e intentará construir los
- subdirectorios desde el directorio actual en esa unidad)
-
- Cuando la extracción requiera un trayecto no existente en el disco, la situación
- se trata como cuando se extrae a un directorio no existente especificado en
- la línea de órdenes. El usuarió será avisado acerca de la incidencia y se le
- consultará antes de tomar acciones.
-
- ============
- = OPCIONES =
- ============
-
- $ (añadir o extraer etiqueta de volumen)
- ----------------------------------------
- **No implementado**
-
- Compresión:
- Añade la etiqueta de volumen del disco (para la primera especificación de
- ficheros) al archivo. En el ejemplo "x1 a texto.x *.* a:*.* b:*.* c:*.*"
- se añade al archivo la etiqueta de volumen de la unidad actual porque se usó
- en la primera especificación. "x1 a texto.x a:*.* b:*.* c:*.*" hace que se
- almacene la etiqueta de volumen de la unidad "a:".
-
- Extracción:
- Restaura la etiqueta del disco (si está presente) del archivo al disco
- donde los ficheros serán extraídos. Dado que sólo se permite una etiqueta
- de volumen en el archivo, no hay posibilidad de confusión.
-
-
- A (almacenar/restaurar atributos)
- ---------------------------------
- **No implementado**
-
- Nota general: Esta opción esta pensada especialmente para los "atributos
- especiales" tales como los atributos extendidos de OS/2. Los atributos simples
- como los de MSDOS siempre son restaurados.
-
- Compresión:
- Guarda todos los atributos (posiblemente extendidos) en el archivo.
-
- Extracción:
- Restaura los atributos (posiblemente extendidos). Los atributos que dependen
- del sistema operativo empleado sólo pueden recuperarse bajo el mismo sistema
- operativo. En caso de conflicto, los atributos o bien no se restauran o se
- escoge una sustitución adecuada y simple.
-
-
- C (leer los comentarios desde un fichero)
- -----------------------------------------
- **No implementado**
-
- Sólo puede usarse con la orden "C".
-
- Hay dos formas de añadir comentarios a un archivo:
- * introducirlas desde el teclado.
- * insertar caracteres desde un fichero.
-
- Si el comentario va a ser tecleado, la opción "C" no se activa. Si los
- comentarios vienen de un fichero, entonces debe usarse esta opción.
-
-
- E (excluir trayecto de los nombres de fichero)
- ----------------------------------------------
-
- Esta opción se comporta de forma distinta según la orden que se esté
- ejecutando (A,E,F)
-
- Compresión (A):
-
- Excluye los trayectos que se encuentran en la búsqueda recursiva de
- directorios. A no ser que se active esta opción, por defecto el compresor
- incluirá todos los trayectos que encuentre.
-
- Extracción (E):
-
- Esta función se asegura de que todos los ficheros sean extraídos en el mismo
- directorio, sin tener en cuenta los trayectos almacenados en el archivo.
-
- Refrescar (F):
-
- La función aquí es evitar renovar ficheros en subdirectorios dentro del
- archivo. De lo contrario, todos los ficheros son refrescados sin tener en
- cuenta si están o no en subdirectorios.
-
-
- F (mover los ficheros dentro/fuera del archivo)
- -----------------------------------------------
- **No implementado**
-
- Compresión:
-
- Se borran los ficheros del disco tan pronto como hayan sido comprimidos y
- se establezca que la operación ha tenido éxito, así se garantiza una seguridad
- extra, de modo que si la operación se interrumpe prematuramente, no debería
- producirse ninguna pérdida de datos.
-
- Extracción:
-
- Se reduce el tamaño del archivo, eliminando las entradas que corresponden a
- los ficheros extraídos.
-
-
- I (modo silencioso)
- -----------------------
- ** No implementado **
-
- Esta opción suprime toda la salida por pantalla, incluyendo la cabecera del
- programa y los indicadores de progreso. Esta opción se implementa para permitir
- a otros programas llamar a X1 y dejar que el compresor procese los datos sin
- llenar la pantalla de datos irrelevantes.
-
-
- K (sobreescribir el archivo ya existente)
- ---------------------------------------
- ** No implementado **
-
- Compresión:
- La función es forzar la creación de un archivo comprimido nuevo. De no utilizar
- esta opción, de existir un archivo con el mismo nombre sería actualizado y se
- añadirían nuevas entradas a las ya existentes.
-
-
- L<número> (nivel de compresión)
- ------------------------------
-
- Compresión:
-
- Determina un nivel más detallado de compresión. Esto puede implicar el uso de
- más memoria -o una compresión más rápida y/o degradada- dependiendo del método
- escogido.
-
- Esta opción sólo tiene efecto en el método 4 del formato de compresión .X. Los
- niveles válidos son 0,1,2 y 3. Cada nivel determina un modelo de memoria distin-
- to.
-
-
- M<método> (método de compresión)
- --------------------------------
-
- Compresión:
-
- Especifica el método de compresión a utilizar. El método se especifica como
- un número entre 0 y 256. Si el número no puede asociarse con un método válido
- de compresión, se visualiza un mensaje de error.
-
-
- N (Asumir "NO" en todas las preguntas)
- -------------------------------------
-
- Extracción:
-
- La opción "N" es la opuesta de la opción "Y". Responde de antemano a todas las
- posibles preguntas de X1 con un "NO". De esta forma se impide que el programa
- se detenga y pregunte al usuario. Principalmente afecta la posible sobreescri-
- tura de ficheros, creación de directorios, etc.
-
-
- O (ordenar ficheros por nombre, tamaño, fecha, etc.)
- ----------------------------------------------------
- **No implementada **
-
- Deben siempre aparecer dos caracteres 'O' en la cadena de opciones en la línea
- de órdenes. En la sección 'O...O' aparecerán las sub-opciones de clasificación,
- que definen las claves de ordenación y sus prioridades. Sin embargo, si la
- opción 'O' es la última opción que aparece entonces la última 'O' puede
- obviarse.
-
- Las posibles sub-opciones son:
- N: nombre
- S: tamaño
- D: fecha
- T: hora
- (b: mejor compresión)
-
- Así, por ejemplo, OSNO significa: primero ordenar por tamaño, y si dos fi-
- cheros tienen el mismo tamaño, entonces ordena según el nombre.
-
- Compresión:
-
- Si se comprime creando un nuevo archivo, los ficheros se insertan dentro
- del archivo en el orden especificado por las claves de ordenación. Si se
- actualiza el archivo, las entradas existentes serán actualizadas de acuerdo a
- la ordenación ya existente, y las nuevas entradas serán ordenadas según las
- opciones.
-
- Extracción:
- Los ficheros son extraídos en el orden determinado por las opciones.
-
- Ejemplo:
- Ordenar los ficheros comprimidos por fecha, hora y nombre, en este orden.
- "x1 aodsno prueba.x *.*"
-
-
- R (búsqueda recursiva de directorios)
- ------------------------------------
-
- Compresión:
-
- Sin esta opción, sólo se procesarán los ficheros de los directorios especificados por la
- línea de órdenes. Se asumirá el directorio por defecto allí donde no se hayan
- defnido los directorios de forma explícita. Al activar esta opción, se
- procesarán, además, todos los ficheros de los subdirectorios. Estos
- subdirectorios serán visitados recursivamente en el orden en que se encuentran
- en el disco. Se expanden los trayectos de los ficheros almacenados en el
- archivo según se vayan visitando los diferentes subdirectorios, a no ser que
- se active la opción "E". Los ficheros se visitan dos veces: primero durante
- una búsqueda inicial y después cuando se realiza el proceso de compresión.
- La búsqueda inicial se hace para poder estimar un tamaño de las cabeceras de
- archivos sólidos y para visualizar el indicador de progreso.
-
-
- S (cambia la fecha y hora del archivo a la del fichero más nuevo)
- ------------------------------------------------------------------
- ** No implementado **
-
- Compresión:
-
- Aparecen tres posibilidades prácticas cuando se cambia la fecha y hora del
- archivo:
-
- * seleccionar la fecha y hora más moderna de entre las entradas añadidas al
- archivo actualizado.
- * seleccionar la fecha y hora más moderna de entre las entradas ya existentes
- al archivo antes de comenzar a actualizarlo.
- * seleccionar la fecha y hora más moderna de entre todos los ficheros una vez
- que se ha realizado la actualización.
-
- En la implementación actual, sólo se ha incluído la última técnica.
-
- Una forma fácil de poner la fecha y hora del archivo, cuando no se desean añadir
- entradas extras al fichero es con "x1 lis prueba.x", que hace que se listen
- (pero no visualicen) todos los contenidos del fichero y cambie la fecha
- y hora del archivo en el proceso.
-
-
- T (cambiar la fecha y hora de los ficheros conforme a la hora actual)
- -------------------------------------------------------------------
- **No implementado**
-
- Compresión:
-
- Esta opción pone la fecha y hora actuales como la fecha y hora de los ficheros
- añadidos al archivo. La fecha y hora original de los archivos es ignorada.
-
- Extracción:
-
- Marca el fichero extraído con la fecha y hora actual, en lugar de la fecha y
- hora almacenadas por el compresor.
-
- Nota: Todos los ficheros en un proceso recibirán la misma fecha y hora. Incluso
- aunque los ficheros seán procesados con varios segundos de diferencia, todos
- recibirán la misma fecha y hora, cuando el proceso comenzó.
-
-
- U (modo de compresión sólida)
- ------------------------------
-
- Compresión:
-
- Si sólo se comprime un fichero, esta opción no tiene efecto. Pero si se van a
- comprimir varios ficheros, con esta opción serán comprimidos en "modo sólido".
- Esto quiere decir que los ficheros son comprimidos como un flujo de datos
- continuo (como si estuviesen concatenados). Para ficheros relacionados entre
- sí debería resultar en una mejor compresión.
-
- Para una compresión óptima, los ficheros deberían ser agrupados inteligente-
- mente, de forma que los ficheros que más tengan que ver entre sí sean puestos
- lo más juntos posible. Sin embargo, en la implementación actual esto no
- se hace de forma automática.
-
- V<tamaño> (proceso de múltiples volúmenes)
- ------------------------------------------
- ** No implementada **
-
- Compresión:
-
- Si no especifica ningún <tamaño>, la compresión se hará mediante un archivo
- de múltiples volúmenes limitado en tamaño por el espacio en disco disponible.
- Después de cada volumen, aparecerá una pregunta (a no ser que se haya dado
- la opción "Y") lo cual permite la inserció de un nuevo disco. La compresión
- continuará con otro fragmento del archivo.
-
- En cualquier caso, el resultado final debiera ser una secuencia de archivos
- con igual nombre y con las extensiones .x00, .x01, etc. donde .x00 contiene
- el primer fragmento.
-
- No es posible actualizar un archivo multivolumen en modo multivolumen. Pero
- es posible actualizar un archivo multivolumen con entradas adicionales
- normales - o actualizar un archivo no-multivolumen con entradas multivolumen.
-
- Extracción:
- Aquí <tamaño> no tiene importancia. Sólo debería intentarse la extracción
- sobre una secuencia completa de archivos multivolumen. Si se intenta extraer
- un fragmento individual de un archivo multivolumen sólo se tendrá éxito con
- las entradas que no pasen de un sólo volumen.
-
-
- W (sobreescritura inteligente en la extracción)
- -----------------------------------------------
- ** No implementado **
-
- Extracción:
-
- Esta opción trata de solventar de forma inteligente ciertas situaciones donde
- los ficheros a extraer sobreescribirían ficheros ya existentes debido a que
- tienen el mismo nombre. Tradicionalmente, estas situaciones se resuelven
- al usuario si se desea sobreescribir -e impidiendo la extracción en caso de
- que se responda que no-. Existe una tercera posibilidad, donde los ficheros
- son extraídos con nombres ligeramente diferentes. Las extensiones .00X, .01X
- (no confundir con los tipos de archivo .X) se utilizan para la resolución
- de colisiones en la extracción.
-
- X (excluír el trayecto en los ficheros de la línea de órdenes)
- -------------------------------------------------------------
-
- Compresión:
-
- Por defecto, todos los trayectos escritos en la línea de órdenes serán
- incluídos en los nombres de ficheros añadidos al archivo. Si se especifica
- un directorio con "x1 a prueba.x dir\*.*" los trayectos "dir\fich1" y
- "dir\fich2" serán almacenados en el archivo. La opción "X" evita esto.
- "x1 ax prueba.x dir\*.*" grabará las entradas anteriores como "fich1" y
- "fich2". Tenga en cuenta que esta opción no afecta a los nombres de trayecto
- almacenados durante la búsqueda recursiva con la opción "R". Para eliminar
- tales trayectos debe usarse la opción "E".
-
- Extracción:
-
- Esta opción no tiene efecto en este caso. Debe utilizarse la opción "E" para
- excluir los trayectos de los ficheros a extraer.
-
-
- Y (Responder "SI" a todas las preguntas)
- -----------------------------------------
-
- Extracción:
-
- La opción "Y" es la contraria de la opción "N". Responde de antemano a todas
- las posibles preguntas con un "sí". De esta forma se impide que el programa
- se detenga y pregunte al usuario. Principalmente afecta la posible
- sobreescritura de ficheros, creación de directorios, etc.
-
-
- Z<número> (excluir los ficheros que serían archivados)
- -----------------------------------------------------
-
- Compresión:
-
- Cuando esta opción no se utiliza, todas las especificaciones de ficheros en la
- línea de órdenes determinan ficheros a incluir en el archivo. Cuando esta
- opción se utiliza pero no es seguida por un número éste se supone que es el 1.
- Este número especifica cuántas de las últimas especificaciones de ficheros
- encontradas en la línea de órdenes especifican ficheros a excluir. Esta
- convención no permite la mezcla de máscars de inclusión y de exclusiòn. TODAS
- las máscaras de exclusión deben ser especificadas juntas y al final de la
- línea de órdenes.
-
- Por ejemplo en "x1 az3 prueba.x prueba1.* prueba2.* *.bak *.swp *.tmp"
- entonces el número 3 que sigue a la opción "Z" dice que las últimas tres
- especificaciones marcan ficheros que NO deben ser incluidos en el archivo.
- El número cuenta hacia atrás desde el final de la línea de órdenes y por
- tanto no se ve afectado por el número de máscaras de inclusión.
-
- En caso de que el número de opciones de exclusión iguale o exceda al número
- total de máscaras en la línea de órdenes, se incluirán los ficheros "*.*" y
- los ficheros especificados serán excluídos.
-
-
- 4. Variables de entorno
- ========================
-
- En la versión actual sólo se soporta una variable de entorno, la
- variable "COUNTRY" que se utiliza para la selección del lenguaje-juego de
- caracteres.
-
- En el DOS, se puede emplear la variable de entorno COUNTRY para especificar
- el país y el juego de caracteres activo. Los caracteres especiales,
- dependientes del idioma, son soportados en el grupo de caracteres ASCII
- superior (posiciones 128 hasta 255) y pueden cambiar según la configuración.
- Según el juego de caracteres, los caracteres dependientes del idioma pueden
- cambiar de posición en la tabla ASCII, si es que están disponibles. Cuando se
- necesitan tales caracteres, es importante determinar el juego de caracteres
- en primer lugar.
-
- Por ejemplo, la configuración para un teclado norteamericano podría ser:
-
- COUNTRY=001,437
-
- El "001" determina el idioma para los Estados Unidos, mientras que "437"
- especifica la página de códigos 437 (juego de caracteres norteamericano).
- Consulte en su manual del DOS la lista detallada de número y sus asociaciones.
- Para X1, entonces, "001" haría que los mensajes se visualizasen en inglés. El
- "437" hace que los posibles caracteres extendidos sean buscados en las
- posiciones correspondientes a la página de códigos 437.
-
- Si por alguna razón prefiere no utilizar la variable COUNTRY, se puede usar
- la variable LANGUAGE en su lugar, con la misma sintaxis.
-
- Observese que si una sentencia o frase no está soportada para el idioma actual,
- el mensaje original en inglés será visualizado (a falta de nada mejor).
-
-
- 5. Formatos y métodos de compresión (nivel de usuario)
- ======================================================
-
- En primer lugar una visión general de los formatos de cabecera y métodos
- soportados.
-
- Compresor X1, versión 0.94a ("+" indica que está soportado y "-" lo contrario)
- ------------------------------------------------------------------------------
- nombre de capaz de visualizar
- compresor | capaz de extraer
- | | capaz de comprimir
- | | | métodos soportados de compresión
- | | | | métodos de descompresión soportados
- | | | | | comentarios
- | | | | | |
- arj + + + 0,1 0,1,2,3,4 1,..,4 básicamente idénticos
- zip + + + 0,1,8 0,1,7,8 1:shrink,7:implode,8:deflate
- lzh/lha + + + 0,5 0,1,5 no hay soporte de LHA-AMIGA!
- zoo + + + 0,2 0,2
- ha + + + 0,1,2 0,1,2
- tar + - - - -
- tgz + + + 8 8 requiere cabeceras TAR gzipadas
- rar + - (+) 0 0
- arc + - - - -
- pak + - - - -
- sqz + - (+) 0 0
- arx + - (+) 0 0,1 (5) algoritmos como en LHA1.13
- put + + + 0,5 0,5 algorithos como en LHA2.x
- x + + + 0,1,.. 0,1,..
- ------------------------------------------------------------------------------
- (+) significa que sólo almacenar no es tan divertido.
-
- Acerca del modulo ARJ:
- ---------------------
-
- Un ejemplo de compresión al formato ARJ sería: "x1 a prueba.arj *.*"
- Esto hace que todos los archivos en el directorio actual serán comprimidos al
- archivo prueba.arj (por defecto con el método 1)
-
- Sólo almacenar (sin comprimir) con: "x1 am0 prueba.arj *.*"
-
- Los ficheros ARJ multivolúmenes no son (de momento) soportados.
-
- Acerca del módulo ZIP:
- ---------------------
-
- Un ejemplo de compresión al formato ZIP sería: "x1 a prueba.zip *.*"
-
- Esto hace que todos los archivos sean comprimidos por defecto con el método
- "deflate" del ZIP, conocido de las versiones 2.x. Si se requiere compati-
- bilidad con versiones anteriores, es posible comprimir con un método más
- antiguo: "x1 am1 prueba.zip *.*". Esto aplica el método "shrink" de la
- versiones ZIP 0.9 y 1.1. No espero que se dé ningún uso serio a este
- método, data de mis primeros y humildes intentos con el formato ZIP, en 1991...
-
- Acerca del modulo LHA:
- ---------------------
-
- Un ejemplo en la compresión al formato LHA sería: "x1 a prueba.lha *.*" o
- "x1 a prueba.lzh *.*". Las extensiones .lha y .lzh son igualmente soportadas.
- Por defecto se utiliza el método 5.
-
- Acerca del módulo ZOO:
- ----------------------
-
- Un ejemplo de compresión al formato ZOO sería: "x1 a prueba.zoo *.*"
-
- ATENCION: El formato ZOO especifica dos tipos de encabezamiento y sólo uno
- es actualmente soportado por X1 (el tipo 2, que es el más habitual). Esto
- puede provocar problemas cuando X1 actualice ficheros antiguos creados con
- ZOO (tipo de encabezamiento 1). Tal vez esté siendo demasiado cauto, no sé...
- ¡Enviénme por email varios ejemplos con cabeceras antiguas!
-
- Acerca del módulo HA:
- --------------------
-
- Un ejemplo de compresión al formato HA sería: "x1 a prueba.ha *.*"
-
- Esto hace que todos los ficheros por defecto en el directorio actual sean
- archivados con el método 1..ASC. Si se requiere una compresión mayor por medio
- de un PPM de 4º orden sería más apropiado usar (HSC): "x1 am2 prueba.ha *.*"
-
- Dejar que el ordenador intentase ambos métodos y eligiese el mejor
- automáticamente sería: "x1 am# prueba.ha *.*"
-
- Acerca del módulo TGZ:
- ---------------------
-
- Un ejemplo de compresión al formato TAR+GZIP sería: "x1 a prueba.tgz *.*"
-
- Esto hace que todos los ficheros sean "envueltos" en cabeceras TAR y
- después comprimidos al formato GZIP. En plataformas que soporten nombres de
- ficheros más largos una extensión más apropiada para el archivo sería
- "tar.gz." Cuando se listan los contenidos de un tal archivo, se necesita la
- total descompresión (en memoria), así que puede ser necesario un poco de
- paciencia.
-
- Actualmente, no es posible extraer los contenidos de un fichero GZIP como
- un único fichero.
-
- Acerca del módulo X:
- -------------------
-
- Algo que no está directamente relacionado con ningún método de compresión
- (pero que distingue al formato X de los demás tipos de archivo) es el
- almacenamiento del doble CRC (capacidad de comprobación rápida del CRC). Se
- calcula el CRC de los datos no comprimidos y comprimidos. Cuando se quieren
- comprobar los errores de transmisión, con mirar el último campo de CRC es
- suficiente. Dado que el tamaño de los datos comprimidos normalmente es
- menor que el tamaño oriignal el trabajo del cálculo extra del CRC es
- normalmente insignificante. No ralentiza el proceso de forma significativa.
-
- Nótese además que los archivos .X pueden contener más de un fichero con el
- mismo nombre. Esto no puede evitarse cuando hay entradas en modo sólido
- de por medio. Si la entrada sólida con los nombres duplicados es borrada
- entonces los otros ficheros también son borrados (ya que están comprimidos
- juntos) lo cual resultará en la pérdida de datos. Este problema podía
- evitarse "pretendiendo" que un nombre duplicado simplemente no está ahí
- (sin mostrarlo, como en UC2 o en HPACK). Pero parecía razonable que, si
- está realmente ahí, el usuario debería poder verlo... ¡un convenio más!
-
- Número de método Nombre Packing example Comentarios
- ---------------- ---- ------------------- --------
- 1 XLZ "x1 am1 prueba.x *.*" Ventana LZ77 de 64K
- (2) -
- (3) -
- 4 XXC "x1 am4 prueba.x *.*" Posible selección de memoria
- variable.
- Requiere memoria de DOS (1Mb)
- (5) LZP "x1 am5 prueba.x *.*"
- mejor método - "x1 am# prueba.x *.*"
- --------------- --- --------------------
-
- NOTA: Para el mejor método se intentarán el método 4 y después el 1. El
- método aceptado finalmente será el que ofrezca el menor tamaño.
-
- ATENCION: El método 5 está siendo actualmente objeto de estudio... ¡no
- esperar compatibilidad con futuras versiones!
-
- El módulo X soporta el formato sólido. Un ejemplo de compresión en formato
- sólido podría ser: "x1 aum1 prueba.x *.*". Un archivo puede contener varias
- entradas sólidas independientes -y pueden ser mezcladas libremente con
- entradas normales de un sólo fichero-. Una vez creada, un entrada sólida no
- puede ser actualizada.
-
- Para verificar un fichero comprimido, comprobando la integridad por la
- capacidad de descompresión: "x1 t prueba.x *.*"
-
- Para verificar un archivo comprimido buscando errores de transmisión:
- "x1 tf prueba.x *.*"
-
- Sí, esto le da a la opción "F" (forzar el fichero adentro/afuera) otro
- significado (comprobación rápida de CRC) cuando se comprueban ficheros. Sin
- embargo, esto no restringe el uso de la opción su función original, ya que
- no tiene sentido "forzar" la entrada o salida de ficheros de un archivo durante
- el proceso de test.
-
- Intentar hacer una comprobación rápida de CRC en otros formatos que no soportan
- doble CRC resultará en una comprobación normal -más lenta- de CRC.
-
- Unas breves palabras del método 4:
-
- Se emplea la opción de "nivel de compresión" de la siguiente manera:
- "x1 am4l2 prueba.x *.*"
- ... significa en realidad compresión de nivel 2 (<4Mb. de memoria)
-
- Nivel Memoria Comentario
- 0 640kb El administrador de memoria puede pedir 1Mb.
- 1 3Mb -
- 2 7Mb -
- 3 16Mb Imposible de probar -no tengo 16Mb. de RAM
-
- ¡Recuerde siempre que el método 4 puede cambiar de nuevo!
-
- 6. Nombres temporales de fichero
- ================================
-
- Mientras se comprime, el programa utiliza un fichero temporal "X???????.SWP"
- (donde ??..?? son caracteres escogidos al azar). Contiene el nuevo archivo
- que está siendo construido. Si la operación parece tener éxito, a este
- fichero se le pone el nombre solicitado.
-
- Durante la extracción, puede ocurrir que una entrada del archivo extraído tenga
- el mismo nombre que el propio archivo. En este caso, el archivo original se
- renombra temporalmente a un nombre neutro (X???????.SWP) y borrado, una vez
- que todas las entradas solicitadas hayan sido extraídas.
-
- En ningún caso hay más de 3 ficheros abiertos (durante la actualización de
- un archivo antiguo). Una vez en funcionamiento, el programa utilizará como
- máximo un fichero temporal -y un único nombre para el mismo, X??????.SWP.
-
- La extensión puede parecer un poco confusa. El fichero temporal NO ES un
- fichero de intercambio (swap file). Al final, este fichero sera renombrado
- y sus contenidos no se copian en ningún otro sitio-. Pero la extensión
- debería ser asociada a los ficheros temporales de otros programas (compiladores
- Borland) que pueden causar menos resquemor al usuario a la hora de borrarlos.
-
- Dado que los ficheros de intercambio no son necesario, no se soportan
- directorios de trabajo especiales. Para una velocidad óptima, el proceso de
- compresión debería tener lugar en una unidad de disco virtual. Y los ficheros
- resultantes deberían ser copiados al destino deseado.
-
-
- 7. Códigos de salida
- ====================
-
- Referencia interna Valor Comentario
- ------------------ ----- -----------------------------
- EXIT_OK 0 Sin errores
- EXIT_INT_ERR 1 Error interno (¿?)
- EXIT_NO_MEM 2 Memoria agotada
- EXIT_NO_DISK 3 Espacio de disco agotado
- EXIT_NO_OPEN 4 No se pudo abrir el archivo
- EXIT_NO_TMP 5 No se pudo abrir el fichero temporal
- EXIT_NO_FOUND 6 No se pueden encontrar los ficheros
- EXIT_NO_PATH 7 No se puede encontrar trayecto
- EXIT_NO_BASE 8 No se puede acceder al directorio base
- EXIT_NO_MKDIR 9 No se puede crear directorio
- EXIT_BREAK 10 Interrumpido por el usuario
- EXIT_FILE_ERR 11 Error de fichero descnocido -- no se pudo leer
- EXIT_BAD_HDR 12 Directorio del archivo (parcialmente) corrompido
- EXIT_BAD_EXT 13 Los contenidos del archivo no se corresponden con la
- extensión
- EXIT_BAD_ARC 14 ¿Seguro que es un archivo?
- EXIT_LONG_NO 15 Demasiados argumentos. Formato no soportado.
- EXIT_LONG_PATH 16 Trayecto demasiado largo.
- EXIT_NO_OVERRIDE 17 No se puede anular el trayecto base
- EXIT_NEST 18 Directorios demasiado anidados
- EXIT_SCRIPT_ERR 19 Errores en el fichero de guión
- EXIT_NOTHING 20 Nada que hacer
- EXIT_UNSP 21 Método no soportado en esta versión
- EXIT_COM 22 Orden desconocida
- EXIT_OPT 23 Opción desconocida
- EXIT_OPT_DIR 24 Opción desconocida
- EXIT_OPT_WR 25 Opción desconocida
- EXIT_OPT_VIEW 26 Opción desconocida
- EXIT_WC_FORM 27 Uso inapropiado de comodines
- EXIT_WC_NAME 28 Uso inapropiado de comodines
- EXIT_WC_COMPL 29 Uso inapropiado de comodines
- EXIT_CHG_WRPROT 30 Intento fallido de modificar el archivo
- (protegido contra escritura)
- EXIT_CHG_DEL 31 Intento fallido de cambiar el archivo (borrado)
- EXIT_CHG_UNI 32 Intento fallido de cambiar el archivo
- (modo sólido de compresión)
- EXIT_CHG_MULTI 33 Intento fallido de cambiar el archivo (multivol)
- EXIT_CHG_CR 34 Intento fallido de cambiar el archivo (encriptado)
- EXIT_CHG_UNCR 35 Intento fallido de cambiar el archivo (no encriptado)
- EXIT_BAD_KEYFILE 36 Clave incorrecta (encriptación)
- EXIT_PASS_NO 37 Identificación (de usuario) no válido (encriptación)
- EXIT_PASS_DIFF 38 Verificación de password fallida (encriptación)
- EXIT_SECURITY 39 Error general de seguridad (encriptación)
- EXIT_NOCRYPT 40 Imposible manejar archivo encriptado
-
-
- ------------------------------------------------------------------------------
-
- Stig Valentini, x1develop@internet.dk (1996 - /3/1997)
-
- ------------------------------------------------------------------------------
-