Título: Tomar variables desde txt usando grupos de palabras Publicado por: AlonsoBytes en 17 Noviembre 2014, 08:13 am Amigos, tengo un txt que contiene un texto de este tipo:
Código: 09B321 Alberti Ramirez, Juan 1988 CASADO Lo que quiero hacer es mediante un Batch hacer que cada grupo tome una variable. Es decir que la primera variable tenga como valor "09B321", la segunda (aqui viene el problema) el nombre completo "Alberti Ramirez, Juan" y asi. Cada txt tiene una sola linea, asi que solo se leeria tal cual esta en el ejemplo, pero se me presenta el inconveniente de como hago para que el batch identifique los espacios largos y los use para tomar los datos solicitados. *Nota: los datos varían en longitud, porque se me ocurrio usar caracteres por numeros pero no puedo porque los nombres hacen variar la longitud. Espero haberme explicado bien. Agradezco su apoyo!! Título: Re: Tomar variables desde txt usando grupos de palabras Publicado por: Eleкtro en 17 Noviembre 2014, 17:43 pm Batch es una herramienta simple, no es un lenguaje capacitado para procesar un String con las condiciones que precisas, se podría hacer, pero habría que invertir bastante tiempo en el desarrollo y elaboración del algoritmo para finálmente obtener un código muy engorroso e ineficiente a diferencia de cómo se podría llevar a cabo en un lenguaje de verdad.
Podrías partir la cadena según la cantidad de espacios entre palabra y palabra, pero dijiste algo de la longitud y no se si será respecto a los espacios, así que de todas formas te sugiero una solución más global, utilizar expresiones regulares (RegEx) ya que supongo que la fecha siempre tendrá el mismo formato: 19xx o 20xx y te puedes servir en eso, aunque para esto debes recurrir a cualquier otro lenguaje que soporte RegEx (VisualBasicScripting, por ejemplo, que está integrado en cualquier Windows, aunque es otro lenguaje simple e igual de inproductivo que Batch). Esta podría ser una expresión regular que cumpliese con tus espectativas: Código: (^\w+)\s+([\w\.\,\;\-\s+]+?)\s+(\d{4})\s+(\w+$) El interior de cada paréntesis representa un grupo, cada grupo captura una palabra/token de la frase, y hay 4 grupos (4 pares de paréntesis) ya que necesitas capturar 4 tokens. ⇲ Regular expression - Wikipedia, the free encyclopedia (http://en.wikipedia.org/wiki/Regular_expression) Te muestro un ejemplo de utilización de esa expresión regular en VisualBasic.Net, tomatelo como un pseudo-code para implementarlo en el lenguaje que prefieras, ya que la mecánica de RegEx es casi idéntica en el resto de lenguajes (no su utilización, pero si el tema de la sintaxis y los grupos): Código
(http://i.imgur.com/neiWgEa.png) Saludos. |