Contar palabras batch

Iniciado por alberto3_3, 5 Agosto 2015, 17:37 PM

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

alberto3_3

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:

@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.

santizuche

Hola esta es la solucion.
Lo único que para cerrar la frase tenes que colocar un punto, de esta forma detecta cuando finaliza.


@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