Foros del Web » Programando para Internet » ASP Clásico »

ASP: Contar candidad de letras de cada palabra de una frase.

Estas en el tema de ASP: Contar candidad de letras de cada palabra de una frase. en el foro de ASP Clásico en Foros del Web. Buenos días, Cómo podría contar la cantidad de letras de cada palabra de una frase. Yo he encontrado algo tal cómo esto: Código HTML: <% ...
  #1 (permalink)  
Antiguo 04/04/2007, 01:51
 
Fecha de Ingreso: abril-2007
Mensajes: 85
Antigüedad: 17 años, 2 meses
Puntos: 0
ASP: Contar candidad de letras de cada palabra de una frase.

Buenos días,

Cómo podría contar la cantidad de letras de cada palabra de una frase.

Yo he encontrado algo tal cómo esto:
Código HTML:
<%
dim texto
texto = "Cuantas palabras   tiene esta frase?"
texto = Trim(texto)

'si existen espacios dobles en la cadena, los eliminamos con este bucle
Do While InStr(1, texto, "  ") > 0
    texto = Replace(texto, "  ", " ")
Loop

'separamos la palabra donde encontramos un espacio
'y hacemos un vector con sus palabras
Dim array_texto
array_texto = split(texto, " ")

'mostramos el resultado, sumando uno mas ultimo índice del vector
'esto es porque los vectores empiezan con el 0.
response.write "El texto ingresado: "Cuantas palabras tiene esta frase?", "
response.write "tiene <B>" & UBound(array_texto)+1 &"</B> palabras"
%>

Código extraído de soloasp.com.ar
Y creo que la propiedad de contar cantidad de letras de una palabra es Len(), pero si hay signos de puntuación, interrogación, exclamación, etc..
No tendría que porque contar..

¿Alguien me puede echar una mano?

Un saludo y muchas gracias!
  #2 (permalink)  
Antiguo 04/04/2007, 07:21
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Re: ASP: Contar candidad de letras de cada palabra de una frase.

Es un ejercicio de escuela?, si es así, lo mejor que podemos hacer es no hacértelo, ya que el chiste es practicar.

Puedo aconsejarte, que recorras toda la cadena mediante un ciclo y el LEN que ya encontraste y analices cada caracter (buscar la función para este fin) y lo compares contra un conjunto que contenga solo las letras del alfabeto, si esta es que es una letra e incrementas un contador.

Saludos
  #3 (permalink)  
Antiguo 04/04/2007, 07:35
 
Fecha de Ingreso: abril-2007
Mensajes: 85
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: ASP: Contar candidad de letras de cada palabra de una frase.

Buenas tardes,

No es un ejercicio de escuela ni tampoco quiero que me hagaís el código ya que lo que quiero hacer va mucho más allá que contar las letras de cada palabra de una frase.

Lo que nose si la propiedad para contar es Len() o se utiliza otra... porque he estado haciendo varias pruebas y haber si lo que estoy batallando yo con Len() no es y se útiliza otra..

Un saludo y muchas gracias ;D
  #4 (permalink)  
Antiguo 04/04/2007, 08:00
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Re: ASP: Contar candidad de letras de cada palabra de una frase.

Len te da la longitud total de la cadena. Las funciones clásicas para trabajar con cadenas son: Left, Right y Mid

Ejemplo curioso:
j = "Prueba de cadena. Esto es una oración. Mas de lo mismo; lo mismo de siempre."
for n = 1 to len(j)
response.Write(Mid(j,n,1) & "<br>")
next

Investiga Mid seguro que te interesa.

En cuanto a lo que dice Myakire sobre las funciones, imagina que creamos una función que nos quite los puntos, comas, puntos y comas, exclamaciones, interrogaciones, etc...
function quitameEso(texto)
Dim t
t = texto
if len(t)>0 then
t = replace(t, ".","")
t = replace(t, ";","")
t = replace(t, ":","")
t = replace(t, ",","")
t = replace(t, "?","")
t = replace(t, "¿","")
t = replace(t, "!","")
t = replace(t, "¡","")
end if
quitameEso = t
end function

y Modificamos lo anterior:

Código:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
</head>

<body>

<%
dim j
j = "Esto es una prueba de texto. Uno"
x = quitameEso(j)
for n = 1 to len(j)
    response.Write(Mid(x,n,1) & "<br>")

next

function quitameEso(texto)
Dim t
t = texto
if len(t)>0 then
t = replace(t, ".","")
t = replace(t, ";","")
t = replace(t, ":","")
t = replace(t, ",","")
t = replace(t, "?","")
t = replace(t, "¿","")
t = replace(t, "!","")
t = replace(t, "¡","")
end if
quitameEso = t
end function

%>

</body>
</html>

Veras que curioso :D


(NOTA: Que maravillosamente simple es ASP comparado con la admin de MSSQL)


Buena Samana Santa a aquellos que la disfruten.

Y no se olviden: Estudien MSSQL. En España habrá 5 o 6 que sepan realmente como administrarla, resolver interbloqueos, liberar RPCs, etc. Dios lo que estoy aprendiendo en tres dias :(
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #5 (permalink)  
Antiguo 04/04/2007, 09:14
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Re: ASP: Contar candidad de letras de cada palabra de una frase.

Cita:
No es un ejercicio de escuela ni tampoco quiero que me hagaís el código ya que lo que quiero hacer va mucho más allá que contar las letras de cada palabra de una frase.
Vaya que te ofendiste, supongo que efectivamente tu tarea vas mucho más allá de contar las letras, y bueno, atendiendo a tu deseo no te haré el código; solo quisiera aportar algo a la solución de tammander . Yo le cambiaría que en lugar de quitar los caracteres no alfabéticos (siempre se puede colarse uno no contemplado) buscaras con el MID en una cadena que solo tenga las letras del alfabeto (es cual es finito y no hay forma de olvidarse de una) mediente el INSTR.
  #6 (permalink)  
Antiguo 04/04/2007, 11:14
 
Fecha de Ingreso: abril-2007
Mensajes: 85
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: ASP: Contar candidad de letras de cada palabra de una frase.

Buenas tardes compañeros,

Ya casi lo tengo ;D sólo me falta acabar de pulir alguna que otra condición pero ya va tomando forma el asunto, de verdad que muchas gracias por vuestras aportaciones y el tiempo invertido en ayudarme.

Un saludo!

PD: Myakire, analizaré que es la instrucción INSTR porque suena muy bien lo que comentas. Gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:04.