Título: [BATCH] Modificar Registros Fichero por script Publicado por: xavima en 25 Abril 2013, 16:08 pm Hola
Ante todo me presento, me llamo Xavi, soy de nuevo ingreso en este foro y este es mi primer post. Mi trabajo es administrativo en el dpto. de rrhh de una empresa. Tened presente que antes de lanzar el tema he estado consultado por internet y vuestro foro, y la verdad, no encuentro, o no he sabido encontrar, la solución adecuada al problema. Voy con mi problema y haber que se le puede hacer. Tengo un fichero que contendrá unos 15000 registros, que son la recopilación de datos de unos controles de presencia. En la empresa se ha cambiado de programa de gestión, y como todo cambio, no importa los registros obtenidos hasta la fecha, por lo que no puedo tener un histórico. Y, encima, el proveedor no sabe como hacerlo. Como me interesa tener registrados y actualizados en el nuevo programa todos los movimientos desde prinicipios de año, para evitar tener dos programas instalados, me encuentro que el nuevo programa tiene otro formato de tratamiento de los datos. Me pregunto, ya que mis conocimientos de script son muy limitados, si alguno de la comunidad puede lanzarme una mano. La estructura antigua del fichero es: 130425075500000001010 Y con la nueva estructura debería ser: 20130425 075500 0101 00 0 00 0 01 (con los espacios incluidos, y eliminando ceros del registro inicial) Estoy buscando una solución que me automatize los 15000 registros, pues sino puede ser mortal tenerlo que hacer a mano. Gracias anticipadas a todos por vuestra atención. Un Saludo Xavi Título: Re: Modificar Registros Fichero por script Publicado por: engel lex en 25 Abril 2013, 20:42 pm @.@ no es mucho trabajo pero para eso las empresas necesitan computistas...
el fichero es dentro del sistema? es un archivo en disco? los ceros iniciales (que eliminaste) son relevantes? porfa brinda unos pocos datos mas para entender (o explica exactamente que haces a mano) Título: Re: Modificar Registros Fichero por script Publicado por: xavima en 26 Abril 2013, 08:12 am Hola
Bien, voy a facilitar más datos: 1) el fichero es un txt y cada registro es una linea, es editable desde el notepad 2) el registro lo he manipulado manualmente para dejarlo como lo necesita ahora el nuevo programa, con los espacios y ceros posteriores al 0101. 3) los ceros eliminados entiendo que la nueva aplicación no los necesita por delante sinó por detrás. 3) la estructura del registro son - 8 digitos fecha - 1 espacio - 6 digitos hora - 1 espacio - 4 digitos numero tarjeta trabajador - 1 espacio - y este registro fijo: 00 0 00 0 01 No me importa que los nuevos registros sean grabados en otro fichero, pues debo importalo al nuevo programa y tan solo le importa la estructura. Espero haberme explicado mejor. Un saludo Xavi Título: Re: Modificar Registros Fichero por script Publicado por: Eleкtro en 30 Abril 2013, 12:36 pm Título: Re: [BATCH] Modificar Registros Fichero por script Publicado por: Eleкtro en 30 Abril 2013, 12:53 pm Código Output: Código: Old Registry: 130425075500000001010 Confirma que es correcto, porque a mi no me cuadran las cosas, como ves obtengo esto: Código: 20130425 075500 1010 00 0 00 0 01 Pero según tus indicaciones la ficha debería ser "0101" Deberías especificar cual es el registro fijo de este string: 130425075500000001010 Yo he asumido que la ficha eran los últimos 4 dígitos, pero quizás haya que eliminar el último dígito y coger los ultimos 4, entonces modifica esta línea: Código: Set "Ficha=!Registry:~-4!" Código: Set "Ficha=!Registry:~-5!" & Set "Ficha=!Ficha:~0,4!" Así obtienes exáctamente el nuevo registro, pero como no sé la estructura del antiguo registro... no sé si es lo correcto. Saludos! Título: Re: [BATCH] Modificar Registros Fichero por script Publicado por: xavima en 7 Mayo 2013, 09:38 am Hola EleKtro,
Gracias por el código. Disculpa no haber contestado antes, pero he estado ausente y desconectado de la red por temas personales. Efectivamente, te dá un error porqué inicialmente has interpretado que los 4 ultimos digitos son la ficha, cuando son a partir del ~5, los 4 siguientes, por lo que lo correcto es el segundo código que has indicado: Set "Ficha=!Registry:~-5!" & Set "Ficha=!Ficha:~0,4!" Voy a probarlo e informo. Xavi |