Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: alberto3_3 en 5 Agosto 2015, 17:37 pm



Título: Contar palabras batch
Publicado por: alberto3_3 en 5 Agosto 2015, 17:37 pm
Hola a todos!

Quiero hacer un script que pida una frase y cuente las palabras que tiene la frase, anteriormente hice una que contaba los caracteres y me base en ese, pero no logro que haga lo que quiero.

Lei que con un array se podria hacer pero estoy un poco verde en el tema de los arrays, aunque supongo que pueden haber varias soluciones.

el codigo:
Código:
@echo off
:inicio
cls
setlocal enable delayedexpansion
set /p frase=Escribe una frase para contar palabras :
if "%frase%" EQU "" goto inicio
for /l %%a in (0,1,1000) do (
 
)
:fin
echo La frase tiene %palabras% palabras.
pause>nul

El ciclo for lo usaria para ir de letra en letra contando, pero en este caso quiero contar palabras, habia pensado en que contara los espacios en blanco que son separaciones entre palabras y agregar un contador que cada vez que diera con un espacion en blanco sumara +1 al haber pasado por una palabra, no se si me explico bien.

De cualquier modo me gustaria que me ayudeis a resolverlo ya sea con arrays o de alguna otra manera.

Gracias un saludo.


Título: Re: Contar palabras batch
Publicado por: santizuche en 11 Agosto 2015, 07:01 am
Hola esta es la solucion.
Lo único que para cerrar la frase tenes que colocar un punto, de esta forma detecta cuando finaliza.

Código:
@echo off
echo.
set /p frase=Ingrese su frase y finalicela con un punto:
setlocal enabledelayedexpansion
:contarmas
set /a lc+=1
if "!frase:~%lc%,1!"==" " (set /a Espacio+=1)
if "!frase:~%lc%,1!"=="." (goto :resultado)
goto :contarmas
:resultado
cls
echo.
set /a Espacio+=1
echo Frase: %frase%
echo Cantidad de palabras: %Espacio%
pause