En este tip les mostraré una pequeña Clase en Actionscript 3 para contar las palabras en un campo de texto.
Este es el código:
Código :
package Classes { import flash.text.TextField;
public class CountWords { private var wordsArray:Array = new Array(); //Array donde se almacenan las palabras. private var wordsNumber:String; //Aqui se guarda el número de palabras.
public function count(target:TextField):String //Donde "target" es el nombre de instancia del campo de texto { wordsArray = target.text.split(" "); //Lo que hace "split()" es dividir un String, usando como separador el contenido de los parentesis. wordsNumber = new String(wordsArray.length - 1); //Restamos 1 al numero de palabras, ya que las arrays comienzan a contar desde 0.
return wordsNumber + " Words"; } } }
Aquí está el ejemplo:
Escribe sobre las lineas, las palabras se contarán automáticamente.
Pero malas noticias, escribe tres palabras y te las contará como dos hasta que pongas otro espacio. Por:Freddie
Obvio, es un contador de palabras, no un reconocedor de palabras.
Si escribes "cualquier", es una palabra, pero que tal si la palabra que querías era "cualquiera" es por eso que hasta no haber una separación se cuenta como palabra.
Got it?
No se ha tomado en cuenta Enter en el ejemplo, pero si alguien lo cree conveniente y no sabe como hacerlo sólo posteelo. Por:Carloz.Yanez
por lo menos esta usable
se deberia en todo caso hacer lo inverso, q empiece en 1 palabra y q despues del espacio la primera letra se considere una palabra y listo
detalles detalles, aun asi felicitaciones, sabemos q en Clab hemos logrado ayudarte con los temas de usabilidad dios existe Por:eldervaz
Es un contador de "espacios". Lo malo que si escribes una frase y la acabas con un punto. Esa última palabra no te la cuenta. Pero por lo demás es un muy buen tip. Por:One
Otro tema que no tiene en cuenta son los apóstrofos de inglés (I am -> I'm), francés (la eau -> l'eau) o català (el arbre -> l'arbre) aunque estén contraídas siguen siendo dos palabras. Por:Zguillez
Si escribes varios espacios los cuenta como varias palabras. Por:PepitoGrillo_blog
y si soy dos veces espacio me cuenta dos palabras, pero en si, está muy bien Por:Jatrix13
O si das un punto y luego espacio, te lo cuenta como palabra... Pero buen Tip Carloz.Yanez !!!... Por:M@U
si, tendra sus cosas, pero ahi q agregar q es muy buen tip Por:Jatrix13
Bueno a mi me parece bien chevere , Grax sensei por compartir tu sabiduría u_u . Es una idea de lo que se puede hacer en flash pues esta ya esta, para las observaciones anteriores habria q ponerle un poco de lógica supongo y listo el pollo a la brasa!!! hay que rico se me hizo agua a la boca,(homero) un pardos chicken x favor!!! . Por:enjoydasilence_blog
mmmm este método es un poco burdo, para realizar ese conteo, pues al haber una cantidad no homogenea de espacios, la cantidad de palabras podría no ser la correcta Lo ideal sería usar Expresiones regulares, las cuales ya son soportadas en AS3 Por:ramiro_olvera
Carloz.Yanez :
Obvio, es un contador de palabras, no un reconocedor de palabras.
Si escribes "cualquier", es una palabra, pero que tal si la palabra que querías era "cualquiera" es por eso que hasta no haber una separación se cuenta como palabra.
Got it?
No se ha tomado en cuenta Enter en el ejemplo, pero si alguien lo cree conveniente y no sabe como hacerlo sólo posteelo.
Hay un personaje de TV viejiiiisiiimo que se parece a ti. Jalisco.
Jalisco nunca perdía, máximo empataba. Nunca aceptaba un error, siempre el error era de otro. Y se inventaba las cosas más extrañas para demostrar que no era su culpa, la culpa era del resto.
Mira bien los comentarios de los demás y el titulo del tip. Con un arreglo al algoritmo que requiere sólo un poco de esfuerzo será un verdadero contador de palabras. Ahora mismo, solamente es un contador de cuantos espacios tiene un campo de texto. No seas Jalisco. Por:Freddie
Hay un personaje de TV viejiiiisiiimo que se parece a ti. Jalisco.
Jalisco nunca perdía, máximo empataba. Nunca aceptaba un error, siempre el error era de otro. Y se inventaba las cosas más extrañas para demostrar que no era su culpa, la culpa era del resto.
Mira bien los comentarios de los demás y el titulo del tip. Con un arreglo al algoritmo que requiere sólo un poco de esfuerzo será un verdadero contador de palabras. Ahora mismo, solamente es un contador de cuantos espacios tiene un campo de texto. No seas Jalisco.
No es que nunca me equivoque, es que lo que posteo aquí son ejemplos, solamente ejemplos, lo cual es algo que ustedes no saben que es.
Ejemplo loc. ...Se usa para introducir una prueba o aclaración, o para ilustrar o autorizar lo que antes se ha dicho.
Los ejemplos NO son programas terminados y mucho menos sin errores, son sólo una prueba de aplicación de la Clase, el ejemplo cuenta espacios, que es una manera muy fácil de contar las palabras (y más utilizando un botón).
En fin, tomo en cuenta los comentarios que agradecen aún señalando que el código no está terminado, no los que sólamente critican.
En cuanto a la usabilidad, gracias a los que me hicieron entender que la gente es tonta, y que para escribir necesitan que les pongamos el lapiz en la mano y sobre el papel. Por:Carloz.Yanez
Carloz.Yanez :
Los ejemplos NO son programas terminados y mucho menos sin errores, son sólo una prueba de aplicación de la Clase, el ejemplo cuenta espacios, que es una manera muy fácil de contar las palabras (y más utilizando un botón).
Ah, es decir, aún no está terminado. Y ahora que lo veo no está el código completo de uso. En un futuro entonces avisanos así lo pasamos a portada en cuanto esté listo. Por:Freddie
Veo que no entiendes lo que es un ejemplo.
Esto es un ejemplo(y tuyo), y no me digas que está terminado.
No está terminado porque es sólo eso, un ejemplo, una demostración. Por:Carloz.Yanez
Este tipo de ejemplos se me hacen muy buenos porque contribuyen algo a la comunidad. Lo que no se me hace tan bueno es la critica sin dar una solución. Si les parece que no funciona perfectamente entonces propongan algo mejor y no traten de buscarle 3 pies para criticar.
Los apostrofes en otros idiomas... dios!
El ejemplo es correcto. Si quieres seguir utilizando el split debes de encontrar alguna manera de eliminar (splice) los indices de la matriz con length 0. Al final ya no deberías de restarle uno al length de tu resultado.
Pero bue... a ver que si pones eso le van a encontrar que en el idioma "123 morse zion" no utilizaban palabras si no derivados del algoritmo eclesiastico antiguo izquierdo y que tu clase las cuenta igual como palabras. Por:SuConciencia_blog
yo digo que no se tomen todo tan en serio, no? Por:granatta
Gracias a los que saben apreciar una Colaboración. Por:Carloz.Yanez
esta muy util, y su interfaz mas que bonita. Me servira para mis calculos tipograficos Por:Mariux
si apreto ENTRAR nunca cuenta una palabra, que en realidad sí serian varias palabras
una dos tres
ahi no las cuenta Por:Daniel_blog
Carloz.Yanez :
Gracias a los que saben apreciar una Colaboración.
todos apreciamos las colaboraciones, no te la tomes tan en serio (como dice Dani)
lo unico q te comentamos, es q el titulo difiere de lo q hace, cuenta espacios, eso es clarisimo, pero no cuenta las palabras.
tus aportes son buenos, pero intenta completar la idea para q no recibas estos comentarios.
mira q es un avance en ti, ya nadie te opinó de la usabilidad
aparte, debes entender q al hacer un tip o tutorial, estas expuesto a cualquier comentario, bueno o malo, todos pensamos diferente y podemos aportar sobre tu tip. Te acostumbraras Por:eldervaz
Granatta: Buenisimooooooooooo el efecto de los banners para rexona V8, ya quisiera ser como tú y el juego mmmmmmmmmmmmmmmm... parece que se viene una bombazaaaa . Por:enjoydasilence_blog
¿cuando te das otra confe por lima??? Por:enjoydasilence_blog
Estoy un poco de acuerdo con mi conciencia (algo bastante razonable). Lo mejor sería proveer una solución, pues aquí va (el código se lo dejo al autor original).
La solución es mejorar la lógica del split y actualizar el count con cada letra presionada y no solo con el espacio. Por:HernanRivas (logout)_blog
No entiendo como algunos quieren dar una lección de lo que es una colaboración en internet.
Yo felicito nuevamente la básica idea de querer poner algo aqui. Den críticas constructivas y no quieran criticar desde afuera algo hecho con buena intencion. Me pregunto yo, a quien le han ganado ustedes para ponerse en esa posición?
"propongo un cambio de nick
* se va corriendo!!!!"
Eso es tirar la piedra y salir corriendo literalmente. En muchos lugares es conocido hasta como spam.
Si no tienen nada que aportar es mejor que se queden callados. Por:SuConciencia_blog
Código :
package classes {
public class CountWords {
public static function count(str:String):uint{ var t:Array = str.split("\n").join(" ").split(" "); var bool:Boolean = false; var count:uint = 0; for each(var i:String in t) if(i.length) count ; return count; }
} }
No puedo predicar colaboración si no lanzo mi propia versión.
Sigo con tu misma línea de nombres y utilizando el split pero le quito la dependencia a un TextField. Por:SuConciencia_blog
en la línea del for each es "count más más". No se porque lo elimino el foro. Por:SuConciencia_blog
SuConciencia_blog, me alegra mucho que te preocupes tanto del tema, pero creo que te estás perdiendo un poco el contexto de Clab. Eso no es spam, es sólo una broma y aquí es normal. Respecto al tema del tip. Creo que hay que tener en cuenta que siempre que escribas algo automáticamente te expones a ser criticado, sobre todo por otros que entienden (más o menos) del tema. Querer colocar un tip y esperar que sólo haya alabanzas es deseable, pero siempre habrá que tener en cuenta la posibilidad de observaciones por parte de otros (después de todo, los foros están hechos para la colaboración y la participación), y eso está bien, nadie tiene todas las respuestas y si hay una ley universal para el desarrollo de aplicaciones es la usabilidad (en lo que te felicito esta vez Carlos.Yanez, supremamente intuitiva tu interfaz) y la comunicación con el usuario, creo que allí es donde ha fallado la cosa. No quería ni meterme en esto, pero perdóname, Carlos.Yanez, pero eso no es un contador de palabras, sino de espacios, las múltiples pruebas lo confirman, pero eso no va en detrimento de tu persona, al contrario, es para que lo mejoremos, creo que no hay que tomárselo tan personal. Mucho menos conociendo Clab. Por:The Fricky!
"los foros están hechos para la colaboración y la participación"
Exactamente! Gracias! Yo no he visto que en este post se haya colaborado con el autor, bueno, si se ha colaborado. Se ha colaborado en que la próxima vez que él quiera aportar no lo va a hacer porque lo van a criticar hasta por tonterias.
Hay diferencias entre participaciones buenas y malas.
Sinceramente yo creo que van a conseguir ser una terriblemente mejor comunidad con mejores profesionales si se dejaran de criticar o hacer bromas que otros puedan tomarlas como ofensivas y trataran de ayudarse más a crecer en conocimiento como comunidad.
Si se tiene confianza y cariño de *familia* como para lanzarse una broma deberían de tener los mismos sentimientos para estirarse una mano y ayudar al otro.
No hay nada perfecto en este mundo lamentablemente y todo es una transición hacia algo mejor. Si por lo contrario uno va a tratar de buscarle la sin razón a algo para mi son celos o plena ignorancia. Por:SuConciencia_blog
SuConciencia_blog :
Si se tiene confianza y cariño de *familia* como para lanzarse una broma deberían de tener los mismos sentimientos para estirarse una mano y ayudar al otro.
Siempre habra que buscarle soluciones a los fallos y no criticas a los mismos... Por:M@U
no se compliquen la vida con ciclos, variables, etc..., hay una clase que se llama StringUtils que trae eso y resuelven ese problema con la siguiente funcion:
Código :
public static function wordCount(p_string:String):uint { if (p_string == null) { return 0; } return p_string.match(/\b\w+\b/g).length; }
pueden bajar la clase completa de www.gskinner.com, trae funciones muy buenas como trim, pad, etc.
Saludox! Por:master_of_puppetz
parece q este ejemplo cuenta los espacios realizados con barra espaciadora, solo presionen la barra espaciadora y contara los espacios como palabras. Por:paberu_blog
Pues esta muy bueno el Tip, espero y logres mejorarlo con los comentarios anteriores Por:flashreloco
buenas no por ejemplo no estaba buscando un contador de palabras, sino un buscador de palabras en actionscritp, es decir, q si en el campo de texto introducias "hola" cuando le dieras al boton te mostrara en un campo de texto las veces q se repetia la palabra "hola",
buenas no por ejemplo no estaba buscando un contador de palabras, sino un buscador de palabras en actionscritp, es decir, q si en el campo de texto introducias "hola" cuando le dieras al boton te mostrara en un campo de texto las veces q se repetia la palabra "hola",