Quitar tildes de un archivo texto en bat ?

Iniciado por novato04, 26 Julio 2014, 18:23 PM

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

novato04

tengo un problema con las tildes y tengo que sacarlas de un texto


Vértigo
El crepúsculo de los dioses

Me pasan un script para poder sacar esas tildes en bat

daryo

#1
mm veras la simplicidad de batch a veces hace que sea absurdamente complejo hacer cosas que con otros lenguajes de programacion se harian en pocas lineas hasta ahora logre que avise cuando encuentra en un archivo una vocal con tilde. En un archivo

buenas

daryo

#2
ya logre hacer que funcione . si eres novato en batch talves te desanime un poco pero luego explico el codigo y seguro a alguien le sirve :)


@echo off
setlocal enabledelayedexpansion
goto main


:si
set true=1
goto :EOF

:no
set true=0
goto :EOF

:leer
set archivo=%1
set /a n=1
set /a tamano=%2
set resultado=
set true=0
for /l %%a in (1,1,%tamano%) do (
rem mayusculas
if  "!archivo:~%%a,1!"=="Á" (
call :si
set resultado=!resultado!A
)
if  "!archivo:~%%a,1!"=="É" (
call :si
set resultado=!resultado!E
)
if  "!archivo:~%%a,1!"=="Í" (
call :si
set resultado=!resultado!I
)
if  "!archivo:~%%a,1!"=="Ó" (
call :si
set resultado=!resultado!O
)
if  "!archivo:~%%a,1!"=="Ú" (
call :si
set resultado=!resultado!U
)
rem minusculas
if  "!archivo:~%%a,1!"=="á" (
call :si
set resultado=!resultado!a
)
if  "!archivo:~%%a,1!"=="é" (
call :si
set resultado=!resultado!e
)
if  "!archivo:~%%a,1!"=="í" (
call :si
set resultado=!resultado!i
)
if  "!archivo:~%%a,1!"=="ó" (
call :si
set resultado=!resultado!o
)
if  "!archivo:~%%a,1!"=="ú" (
call :si
set resultado=!resultado!u
)
if !true!==0 (
set "resultado=!resultado!!archivo:~%%a,1!" )
call :no
)
echo !resultado! >> "(sin tildes)%archiv%"
goto :EOF

:tildes
rem echo  %~z1
if exist %1 (
for /f "tokens=*" %%A in (%1) do (call :leer "%%A" %~z1 )
)
)
goto :EOF

:main
echo escriba el archivo a buscar tildes
set /p archiv=
call :tildes %archiv%


PD: batch es mucho mas util si te gustan los retos que si quieres hacer algo de forma practica xD
buenas

novato04

#3
 ;D ;D ;D ;D ;D ;D ;D ;D

Graciass una ultima cosa

Que las palabras salgan sin separarse ?
Porque los nombres estos los tengo que pasar en una lista  me ayudas  :D :D
                    e n r e d o  "                                                                                                                                                                                        
                    a l e g r o  "                                                                                                                                                                                        
                    p e n s a r a  "  
_________________________________Asi
                   enredo
                   alegro
                   pensara

daryo

mira el archivo que genera (sin tildes)archivo.txt a mi me funciona bien : P .Lo que pones es la salida de la consola?
buenas

novato04

Si funciona bien pero las palabras salen separadas

e n r e d o  "                                                                                                                                                                                         
a l e g r o  "                                                                                                                                                                                         
p e n s a r a  " 

como ago para que no salgan asi

daryo

#6
tan simple como cambiar esta linea :
if !true!==0 ( set resultado=!resultado!!archivo:~%%a,1! )

por esta:
if !true!==0 ( set "resultado=!resultado!!archivo:~%%a,1!" )

edito ya la puse en el codigo de arriba
buenas