¿Se puede reemplazar la "," por un carácter vacío?

Estuve viendo que conoces bastante del asunto, y quería saber si me podrías dar una mano con mi duda.

Lo que necesito es que un archivo .bat me modifique un archivo de texto quitando las comas de valores, por ejemplo; 1,941.28 quiero que quede 1941.28.

¿Se puede realizar eso?

1 Respuesta

Respuesta
1

Si solo se trata de suprimir todas las comas de un archivo no parece muy complicado. Si solo hay que suprimir las comas comprendidas entre dos números puede ser más difícil. Para el primer caso puedes probar lo siguiente:

@echo off
Setlocal EnableDelayedExpansion
del /q kkk.txt
for /f "tokens=* delims=" %%i in (sinner.txt) do (set ANT=%%i&echo !ANT:,=! >> kkk.txt)

El archivo sinner.txt contendría el texto a modificar que se dejaría en kkk.txt en una primera prueba. Luego ya veríamos si queremos sobreescribir el archivo original o no.

Me parece perfecto. Estuve viendo en tus respuestas y encontré las siguientes líneas de código:

@echo off
Setlocal EnableDelayedExpansion
for /f %%z in ('dir /b *.txt') do call :tratar "%%z"
goto :eof
:tratar
del /q tmp.log
for /f "delims=" %%a in (%~1) do (
   set linea=%%a
   set linea=!linea:^<=--!
   echo !linea!>>tmp.log
   )
copy /y tmp.log %1
goto :eof

Yo las modifique segun mis necesidades y quedo algo asi:

@echo off
Setlocal EnableDelayedExpansion
for /f %%z in ('dir /b *.txt') do call :tratar "%%z"
goto :eof
:tratar
for /f "delims=" %%a in (%~1) do (
   set linea=%%a
   set linea=!linea:0,=0!
   set linea=!linea:1,=1!
   set linea=!linea:2,=2!
   set linea=!linea:3,=3!
   set linea=!linea:4,=4!
   set linea=!linea:5,=5!
   set linea=!linea:6,=6!
   set linea=!linea:7,=7!
   set linea=!linea:8,=8!
   set linea=!linea:9,=9!
  Echo ! Linea!>>tmp.log
   )
copy /y tmp.log %1
goto :eof

Este proceso se realiza sobre un txt en el cual exporte todos los datos del nomenclador de una obra social que era en un principio .tps.

Al procesar el bat el txt lo hace bien segun veo, pero queria que lo vieras para saber si esta bien o hay que corregir algo

Está claro que lo que necesitabas era la segunda de las opciones y no la primera. Pero la opción que has utilizado trata todos los TXT de la carpeta, no solo uno. Aunque lógicamente también vale para lo que pretendes.

Pero has captado perfectamente la idea y además creo que has usado la mejor estrategia para tratar el caso de coma entre números, aunque puede dar algún pequeño problema si la coma que sigue al número no es una coma decimal sino "textual" pero la supresión tampoco importaría mucho.

Aprovecho para decirte que si quieres poner en una ventanita un texto solo tienes que usar el icon "<>" de la barra de herramientas de la página. Le llama "snippet".

Por cierto, no sé que pintaba esta pregunta en "C y C++". Ahora voy a salir como "experto" en estos lenguajes...

Perfecto! Muchas gracias!

No se si llegue a tal punto que afecte algo "Textual" del archivo.

Gracias por el dato de Snippet, lo tendré en cuenta.

De nada. Un placer haberte ayudado en algo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas