Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: novato04 en 26 Julio 2014, 18:23 pm



Título: Quitar tildes de un archivo texto en bat ?
Publicado por: novato04 en 26 Julio 2014, 18:23 pm
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


Título: Re: Quitar tildes de un archivo texto en bat ?
Publicado por: daryo en 26 Julio 2014, 21:25 pm
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



Título: Re: Quitar tildes de un archivo texto en bat ?
Publicado por: daryo en 27 Julio 2014, 04:49 am
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 :)


Código:
@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


Título: Re: Quitar tildes de un archivo texto en bat ?
Publicado por: novato04 en 27 Julio 2014, 06:55 am
 ;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


Título: Re: Quitar tildes de un archivo texto en bat ?
Publicado por: daryo en 27 Julio 2014, 13:50 pm
mira el archivo que genera (sin tildes)archivo.txt a mi me funciona bien : P .Lo que pones es la salida de la consola?


Título: Re: Quitar tildes de un archivo texto en bat ?
Publicado por: novato04 en 27 Julio 2014, 16:28 pm
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


Título: Re: Quitar tildes de un archivo texto en bat ?
Publicado por: daryo en 27 Julio 2014, 16:47 pm
tan simple como cambiar esta linea :
Código:
if !true!==0 ( set resultado=!resultado!!archivo:~%%a,1! )

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

edito ya la puse en el codigo de arriba