[Ayuda][Batch][Againu.u]Modficar Seguna Numero de Linea?

Iniciado por FranciskoAsdf, 23 Noviembre 2009, 22:13 PM

0 Miembros y 1 Visitante están viendo este tema.

FranciskoAsdf

Hola soy yo de nuevo, y necesito su ayuda T_T!

En un post que hice hace poco preguntaba como saber el numero de linea en donde encontraba una coincidencia de texto, y gracias a su ayuda logré hacerlo,
me muestra el numero de linea donde encontró la coincidencia y el caracter que necesito reemplazar, pero es en esta parte donde tengo el problema, ya que después de leer el tema de "acciones sobre archivos de texto" (de Leo Guitierrez) encontré una pequeña función que me permite reemplazar la palabras por otras :), pero (siempre tiene que haber un pero u.u) no me reemplaza en la linea en que yo necesito que lo haga, sino que lo hace en todas :/.. por ejemplo:

Tengo un archivo que contiene las siguientes lineas de texto (solo pondré unas cuantas ya que son miles :B)


000145,       000145, 0,   2499, 0,000000,0,  5,  0,       0,1,0,0,KUCHEN MANZANA FAMILIAR,SUPER TOTTAL
000146,       000146, 0,      0, 0,000000,0,  5,  0,       0,1,0,0,KUCHEN MIGA (STROISSER),SUPER TOTTAL
000147,       000147, 0,   2990, 0,000000,0,  5,  0,       0,1,0,0,PIE DE LIMON FAMILIAR,SUPER TOTTAL
000148,       000148, 0,   2499, 0,000000,0,  5,  0,       0,1,0,0,KUCHEN DURAZNO SUPER TOT,SUPER TOTTAL


en donde lo que necesito reemplazar es los numeros 5 despues de la 7º "coma"

por ejemplo tomando las misma lineas anteriores si yo quisiese reemplazar el "5" del producto 000146
deberia quedar asi



000145,       000145, 0,   2499, 0,000000,0,  5,  0,       0,1,0,0,KUCHEN MANZANA FAMILIAR,SUPER TOTTAL
000146,       000146, 0,      0, 0,000000,0,  25,  0,       0,1,0,0,KUCHEN MIGA (STROISSER),SUPER TOTTAL
000147,       000147, 0,   2990, 0,000000,0,  5,  0,       0,1,0,0,PIE DE LIMON FAMILIAR,SUPER TOTTAL
000148,       000148, 0,   2499, 0,000000,0,  5,  0,       0,1,0,0,KUCHEN DURAZNO SUPER TOT,SUPER TOTTAL


pero cuando uso lo que llevo hasta ahora queda asi


000145,       000145, 0,   2499, 0,000000,0,  25,  0,       0,1,0,0,KUCHEN MANZANA FAMILIAR,SUPER TOTTAL
000146,       000146, 0,      0, 0,000000,0,  25,  0,       0,1,0,0,KUCHEN MIGA (STROISSER),SUPER TOTTAL
000147,       000147, 0,   2990, 0,000000,0,  25,  0,       0,1,0,0,PIE DE LIMON FAMILIAR,SUPER TOTTAL
000148,       000148, 0,   2499, 0,000000,0,  25,  0,       0,1,0,0,KUCHEN DURAZNO SUPER TOT,SUPER TOTTAL


Acá esta el código que llevo hasta el momento:

Código (dos) [Seleccionar]

@echo off
:: Encontrar PLU
set /p plu=ingrese plu y wea :

For /F "Tokens=1,9 Delims=,[] skip=2" %%f In ('Find "%plu%" plu.txt /n') Do (
Set "linea=%%f"
Set "dato=%%g"
REM echo.Numero de linea: %%f  -  Dato: %%g
)

echo %linea%
echo %dato%

echo reemplazando espere....
setlocal enabledelayedexpansion
for /f "tokens=* delims=" %%x in ('type plu.txt') do (
set linea=%%x
set linea=!linea:%dato%=  25!
call :show !linea!
)
pause
:show
echo %* >> SalidaPLU.txt
goto:eof


pero como les digo antes solo necesito que me reemplace el numero "5" por "25" a los códigos que yo le diga, osea, yo ingreso un PLU (la primera linea con numero por ej. 000145), encuentra el numero de linea en el que está el PLU y solo me reemplaza el 5 por el 25, pero como se darán cuenta no se como hacerlo T_T


si algún alma bondadosa me puede ayudar le estaré agradecido for ever *O*!!!


muchas gracias de ante mano y saludos.-
Asdf debería ser algún tipo de función.

FranciskoAsdf

Asdf debería ser algún tipo de función.

leogtz

Disculpa, no he checado dudas porque ahora ando bastante ocupado con la escuela.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

FranciskoAsdf

#3
sigo esperando que algun alma caritativa me pueda ayudar  :-( :-( :-( :-(
Asdf debería ser algún tipo de función.

FranciskoAsdf

Asdf debería ser algún tipo de función.