viernes, 25 de enero de 2013

Consola de recuperación.

Mi disco C: después de su ampliación, y de funcionar correctamente después de su ampliación, perdió su capacidad de arranque. Busqué y encontré la manera de recuperar el sector de inicio o de arranque (XP). Hay que:

  • Reiniciar el PC con el CD de instalación, en mi caso XP. En mi instalación, además, tuve que usar un teclado con cable, el inalámbrico no lo detectaba.
  • Tarda un rato. Hay que seleccionar la opción R, de consola de recuperación, pulsando R.
  • Como solo tengo un S.O. instalado lo seleccione, pulsando un 1.
  • Es obligatorio acordarse de la contraseña del administrador.
  • Lance los dos comandos de recuperación del sector de arranque, FIXMBR y FIXBOOT. Como mi XP viene en castellano hay que confirmar con una S.
  • Termino con Exit. 
La consola de recuperación es un pequeño S.O. que permite, además de esta recuperación del sector de arranque, hacer copias, borrar ficheros, crear directorios y otras operaciones con comandos similares, o iguales, a los del antiguo DOS. Según Microsoft son:

  • Attrib: cambia los atributos en un archivo o subdirectorio.
  • Batch: ejecuta los comandos especificados en el archivo de texto, ArchivoEntrada. ArchivoSal contiene la salida de los comandos. Si omite el parámetro ArchivoSal, el resultado se mostrará en la pantalla.
  • Bootcfg: modifica el archivo Boot.ini file para la recuperación y configuración del inicio.
  • CD (Chdir): sólo funciona en los directorios de sistema de la instalación actual de Windows, en los medios extraíbles, en el directorio raíz de cualquier partición del disco duro y en los orígenes de instalación locales.
  • Chkdsk: el modificador /p ejecuta Chkdsk incluso aunque la unidad no se haya etiquetado como "incorrecta". El modificador /r busca posibles sectores defectuosos y recupera en ellos la información legible. Este modificado implica a/p. Chkdsk requiere Autochk. Chkdsk busca automáticamente Autochk.exe en la carpeta de inicio. Si Chkdsk no puede encontrar el archivo en la carpeta de inicio, lo busca en el CD-ROM de instalación de Windows 2000. Si Chkdsk no puede encontrar el CD-ROM de instalación, Chkdsk pregunta al usuario por la ubicación de Autochk.exe.
  • Cls: borra la pantalla.
  • Copy: copia un archivo en una ubicación de destino. De manera predeterminada, el destino no puede ser un soporte extraíble y, además, no puede usar caracteres de tipo comodín. Al copiar un archivo comprimido desde el CD-ROM de instalación, se descomprime el archivo automáticamente.
  • Del (Delete): elimina un archivo. Sólo funciona en los directorios de sistema de la instalación actual de Windows, en los medios extraíbles, en el directorio raíz de cualquier partición del disco duro y en los orígenes de instalación locales. De manera predeterminada, no puede usar caracteres comodín.
  • Dir: muestra todos los archivos, incluidos los ocultos y los de sistema.
  • Disable: deshabilita un controlador o un servicio del sistema de Windows. La variable servicio_o_controlador es el nombre del servicio o del controlador que desea deshabilitar. Cuando utiliza este comando para deshabilitar un servicio, el comando muestra el tipo de inicio original del servicio antes de cambiar el tipo a SERVICE_DISABLED. Anote el tipo de inicio original para que pueda usar el comando enable para reiniciar el servicio.
  • Diskpart: administra las particiones en los volúmenes del disco duro. La opción /add crea una partición nueva. La opción/delete elimina una partición existente. La variable de dispositivo es el nombre de dispositivo para la nueva partición (como \dispositivo\discoduro0). La variable de unidad es la letra de unidad que para una partición que está eliminado (por ejemplo, D). Partición es el nombre basado en la partición para una partición que está eliminando (por ejemplo: \dispositivo\discoduro0\partición1) y se puede usar en lugar de la variable de unidad. El tamaño de la variable es el tamaño, en magabytes, de una nueva partición.
  • Enable: habilita un controlador o un servicio del sistema de Windows. La variable servicio_o_controlador es el nombre del servicio o del controlador que desea habilitar y tipo_inicio es el tipo de inicio para un servicio habilitado. El tipo de inicio usa uno de los siguientes formatos:
    SERVICE_BOOT_START
    SERVICE_SYSTEM_START
    SERVICE_AUTO_START
    SERVICE_DEMAND_START
  • Exit: sale de la consola de recuperación y reinicia el equipo.
  • Expand: expande un archivo comprimido. La variable de origen es el archivo que quiere expandir. De manera predeterminada, no puede usar caracteres comodín. La variable de destino es el directorio para el nuevo archivo. De manera predeterminada, el destino no puede ser un soporte extraíble y no puede ser de sólo lectura. Puede usar el comando attrib para quitar del directorio de destino el atributo de sólo lectura. Se requiere la opción /f:filespec si el origen contiene más de un archivo. Esta opción permite caracteres comodín. El modificador /y deshabilita el comando de confirmación de sobrescritura. El modificador /d especifica que los archivos no se expandirán y muestra un directorio de los archivos en el origen.
  • Fixboot: escribe un nuevo sector de inicio en la partición del sistema.
  • Fixmbr: repara el código de inicio principal de la partición de inicio. La variable de dispositivo es un nombre opcional que especifica el dispositivo que requiere un registro de inicio maestro. Omita esta variable cuando el destino sea el dispositivo de inicio.
  • Format: da formato a un disco. El modificador /q ejecuta un formato rápido. El modificador /fs especifica el sistema de archivos.
  • Help: si no usa la variable de comandos para especificar un comando, help enumera todos los comandos que son compatibles con la consola de recuperación.
  • Listsvc: muestra todos los controladores y servicios disponibles en el equipo.
  • Logon muestra las instalaciones de Windows detectadas y solicita la contraseña de administrador local para esas instalaciones. Use este comando para pasar a otra instalación o subdirectorio.
  • Map: muestra las asignaciones de dispositivo activas actualmente. Incluya la opción arc para especificar el uso de rutas de Computación avanzada de RISC (ARC) (el formato para Boot.ini), en lugar de las rutas de dispositivo de Windows.
  • MD (Mkdir): sólo funciona en los directorios de sistema de la instalación actual de Windows, en los medios extraíbles, en el directorio raíz de cualquier partición del disco duro y en los orígenes de instalación locales.
  • More/Type: muestra en pantalla el archivo de texto especificado.
  • Rd (Rmdir): sólo funciona en los directorios de sistema de la instalación actual de Windows, en los medios extraíbles, en el directorio raíz de cualquier partición del disco duro y en los orígenes de instalación locales.
  • Ren (Rename): sólo funciona en los directorios de sistema de la instalación actual de Windows, en los medios extraíbles, en el directorio raíz de cualquier partición del disco duro y en los orígenes de instalación locales. No puede especificar una nueva unidad o ruta como destino.
  • Set: muestra y configura las variables de entorno de la consola de recuperación.
  • Systemroot: configura el directorio actual en %raízSistema%.

jueves, 24 de enero de 2013

Redimensionar disco C:

He redimensionado el disco C: sin demasiados problemas, pero con alguno. Cuando instalé el XP dividí el disco fìsico en dos discos virtuales, el C: para el sistema operativo y el D: para los datos. Con el paso del tiempo el disco C: se ha ido llenando, hasta el punto de estar por encima del 90% de ocupación, yo creo que empezaba a entorpecer el funcionamiento del PC. 
Tengo un disco (live CD) con Guadalinex V6, que dicho sea de paso es bastante bueno. Antes de iniciar con Guadalinex desfragmenté el  ambos discos. Inicio el PC  con ese disco y abro GParted (Sistema->editor de particiones). Redimensiono el disco D:, dejando espacio el espacio libre entre ambos discos, a la izquierda de D:. Lleva su tiempo, pero sin problemas.
El disco C: sí me dio problemas. Daba un error, salvando el error a uno de los discos, pude ver que se refería a un cluster determinado y recomendaba ejecutar desde windows CHKDSK /f . Reinicié windows, ejecute el comando, como el disco es el del sistema tuve que forzar el chequeo del disco en  siguiente reinicio. Lo hice, repetí el chequeo para el disco D: (CHKDSK D: /f)
Volví a Guadalinex, lance GParted y amplié, esta vez sin problemas, el disco C: con el espacio libre obtenido anteriormente.

martes, 22 de enero de 2013

Separador de nombre y apellidos.






Muchas veces nos llega un listado, en Excel o en texto, con una relación de nombres y apellidos con un formato “nombre 1 apellido 2º apellido”. Muchas veces ese formato no nos vale, necesitamos separar en columnas el nombre y los apellidos. Esta utilidad separa el nombre y los apellidos, colocándolos en una columna cada uno.
 Al haber nombres compuestos, apellidos compuestos, una combinación de ambos, e incluso  personas con un solo apellido y al ser muy difícil separarlos automáticamente, los nombres o apellidos compuestos se deben resolver por parte del administrador, pero sin tener que reescribir esos nombres. Sencillamente se indica el número de separador (espacio) que separa el nombre del primer apellido y el segundo apellido del primero.

Utilizo las siguientes funciones:
Sustituir()
Espacios()
Encontrar()
Indice()
Si()
EsErr()
Izquierda()
Extrae()

Algoritmo, o como se hace:

  • Preparar el dato.
  • Localizar los espacios.
  • Indicar posición separadores. Manual, por parte del administrador.
  • Separar datos.
  • Copiar, pegado especial, valor.

Preparación del dato:
El listado con los nombres recibido hay que copiarlo el la columna A. En la columna B, que normalmente debería permanecer oculta, preparo cada nombre para su proceso. Esta preparación, en este caso, consiste en suprimir los espacios que puedan rodear, antes o después del nombre, el dato, en convertir los posibles dobles espacios entre palabras en un solo espacio y en añadir al final de la línea un espacio. El algoritmo utilizado para separar palabras necesita que un espacio, y solo uno, al final del nombre. Este pequeño truco garantiza que siempre habrá al menos dos separadores, lo que evita un error en los nombres con un solo apellido. Para líneas en blanco o sin espacios si se producirá un error.
  1. Los espacios los elimino utilizando la función ESPACIOS().
  2. Para sustituir los posibles dobles espacios utilizo, dos veces, anidada, la función SUSTITUIR() y por último concateno un espacio.
=SUSTITUIR(SUSTITUIR(ESPACIOS(A2);"  ";" ");"  ";" ") & " "

Localización de espacios:
Entre las columnas C y L se localizan los posibles espacios entre palabras mediante función ENCONTRAR(), controlando los posibles errores mediante la función EsErr() y la función SI().
La función encontrar tiene tres parámetros, el valor buscado, el texto dentro del cual se busca y un tercer parámetro opcional que indica, en número, a partir de que carácter se busca. Por eso, en esta utilidad, se hace referencia (+1) al valor anterior encontrado. 


En la columna D encontramos la siguiente fórmula :

=SI(ESERR(ENCONTRAR(" ";$B2;C2+1));-1;ENCONTRAR(" ";$B2;C2+1))

En donde C2 es la posición del anterior espacio dentro del nombre (B2). Si C2 fuese el último espacio espacio la función ENCONTRAR() daría un error. Si se produce ese error la función SI() nos devuelve un -1 y si no nos devuelve la posición del espacio, y así sucesivamente. He preparado la hoja para encontrar hasta 10 espacios, que considero que es suficiente para separar cualquier nombre. No obstante también calculo la longitud del nombre con






Separación del dato:
En las columnas N y O el administrador indica la posición, en numero, de los separadores (blancos) entre nombre y apellidos y apellidos entre si.  No es el numero de carácter que hace el espacio dentro del texto, es ordinal de los espacios (primero, segundo,..) A la hora de preparar las líneas,  como norma general, deben valer 1 y 2. Para nombres compuestos, por ejemplo “Juan Ramón” el espacio que separa nombre de apellidos es el segundo espacio. Para “María del Carmen” el espacio separador es el tercero, etc. Lo mismo sucede con el espacio que separa los apellidos entre si.

El nombre, en la columna Q, se separa mediante la fórmula =IZQUIERDA($B2;INDICE($C2:$L2;$N2)-1), en donde $N2 es la posición del separador. El primer apellidos lo encuentra entre el primer separador (N) y el segundo (O). El segundo apellido lo encuentra entre el segundo separador y el último carácter de la cadena.
La posición de los espacios dentro del texto está en el rango $C2:$L2. Con la función
INDICE($C2:$L2;$N2) obtenemos esa posición y a partir de ella, dividimos.

Por último el resultado se debe copiar y pegar, con el pegado especial, como valor, en el sitio de destino.










jueves, 17 de enero de 2013

Gráfico a partir de rumbo y distancia.


¿Y para qué nos sirve un gráfico de este tipo?
 En principio, cuando empecé a pensar en este ejercicio no me planteé esa pregunta, en general los ejercicios que pienso para subir a este blog están pensados para "hacer cosas en excel", independientemente de que tengan, o no, una utilidad práctica, aunque algunos si sean de utilidad. En este caso, este tipo de gráfico nos permite representar un camino en el que no podamos utilizar el GPS (caso de una mina), conocer las dimensiones de una habitación, conocer las rutas o dimensiones de sitios ciegos a los satélites del GPS. Solo necesitamos una brújula buena, con grados y una cinta métrica u otro aparato que nos permita medir distancias.

Caso práctico: ¿Como medir una habitación?
  • Colocamos la brújula con el eje 0-180  paralelo a la pared. El eje norte sur lo da aguja. 
  • Anotamos el ángulo, o rumbo, que nos da la brújula, (360 - ángulo).
  • Medimos la distancia entre esquinas.
  • Llevamos los valores a la hoja de cálculo.



En navegación se define el rumbo como el ángulo medido en el plano horizontal entre el norte y la dirección de avance del barco, medido en círculo, es decir, de 0º a 360º. Es uno de esos parámetros que utilizan o indican los GPS y que, aunque son términos náuticos, también los utilizan los GPS en tierra a la hora de seguir una ruta. Es uno de los datos que el software que acompaña a los GPS Garmin, el programa MapSource, da como propiedades de los puntos de un camino. Da el rumbo seguido y la distancia recorrida.

A partir de esos valores he preparado un gráfico XY. entre dos puntos de un camino hay un rumbo y una distancia.



Los puntos del camino seguido los paso a un libro excel mediante un copia-pega. Abro, en MapSource, las propiedades de un camino, selecciono los puntos de interés y los copio (contro+c) a un libro excel. 
Los datos importados (hoja Datos MapSource) vienen con sus correspondientes unidades (28 M o 32º) Utilizando Datos->Texto en columnas->delimitados elimino la parte innecesaria de esos datos. Como delimitador utilizo el espacio, para la distancia, y el signo de grado (º) , copiándolo del texto importado,para los grados. Al pasar los datos a columnas solo importo la primera columna, el resto las desecho. 
Como en excel las funciones trigonométricas utilizan radianes, hago la trasformación de grados a radianes de dos maneras, una mediante el cálculoGrados*PI()/180 y otra utilizando la función RADIANES(Grados), no es util, no es necesario pero refresca conocimientos.
Entre dos puntos se produce un incremento de los valores X e Y. En estos incrementos  el valor del incremento de   Y es distancia*coseno(rumbo) y el valor del incremento de X es distancia*seno(rumbo), columnas L y M de la hoja puntos. Como ya he dicho, las columnas J y K, el cálculo de radianes, no son necesarias, en las formulas de la columna  L se puede utilizar la función RADIANES anidada  en la formula de cada celda  =$F2*SENO(RADIANES(I2))

El camino queda definido al sumar los sucesivos incrementos (Columnas N y O de la hoja Puntos).Estos  puntos del camino los utilizo para dar contenido a la única serie del gráfico XY. Este gráfico es un gráfico del tipo XY (dispersión), de los que ya he puesto varios ejemplos en este blog. Por debajo de la serie coloco el mapa de la zona por donde hicimos la marcha. El mapa lo obtuve desde el programa MapSource. Como puede verse la ruta dibujada por MapSource coincide con la serie de XY. 
A esta serie le falta el punto inicial, el de origen, el 00. Este origen puede ser el 00 o unas coordenadas conocidas.