Re: tutorial findString
Diego Gomez Deck <[email protected]>
| Newsgroups | gmane.education.small-land |
|---|---|
| Message-ID | <1092583586.6283.42.camel@runabout> |
Hola Esteban, > Hola colisteros, > soy Esteban. Puse una pregunta en el foro sobre "cómo buscar una > palabra en un texto y asociar un evento a ella". Me respondió Manolón. > Utilicé su respuesta y me fui de vacaciones; en concreto a escalar el > Naranjo de Bulnes en Asturias ;-) Que envidia! :-) > Allà no pude darme cuenta de las > múltiples reflexiones que se habÃan generado a partir de ese hilo. > Ahora que he vuelto y, como de forma temeraria prometÃ, tengo listo un > modestÃsimo tutorial sobre lo que querÃa hacer (en sus primero pasos, > porque es un proyecto más largo). Và el PDF que subiste a yahoogroups... si no es mucha molestia, te pedirÃa que escribas el tutorial en nuestro swiki que es donde pretendemos concentrar toda la información. Si no sabés como usar el swiki, etc, preguntá que encantados te damos más información. > De todas las interesantes respuestas que he leÃdo, me gusta > especialmente ésta: > > --- Diego Gomez Deck wrote: > > > ¿Qué es lo que hace falta que el Squeak haga? > > Llevo muy poco tiempo con Squeak y me gusta. Sin embargo, se nota muy > orientado a problemas de 'tipo ingeniero'. La mayorÃa de los guiones > prediseñados son 'avanza', 'rota', 'multiplica', etc. Pero creo que > hay mucha gente interesada en aplicaciones sobre lenguaje natural. En > concreto, mi carta a los reyes magos, consistirÃa en lo siguiente: > > 1.Un guión en la categorÃa texto para buscar una cadena de caracteres > en un texto. Esto es bastante fácil de hacer. Lo que me gustarÃa, antes de hacerlo, es que hagamos una pequeña carta a los reyes de que tipo de procesamiento de cadenas necesitamos (además, claro, del findString). Una primera lista que puede servir como inicio para la discusión puede ser: - contains (contiene): si el texto contiene otro texto. - containsWord: (buscar palabra) que buscarÃa Platón y no darÃa verdadero cuando esté la palabra "Platona". - startsWith (empieza con) - endsWith (termina con) - asUpperCase (como mayúsculas): devuelve una cadena pero con todos los caracteres en mayúsculas. Esto es útil para usar en combinación con las opciones de búsqueda, para que se encuentre con cualquier combinación de mayúsculas minúsculas. Ejemplo: texto asUpperCase startsWith: 'HABÃA UNA VEZ' En ese ejemplo, cualquier cadena que comience con 'habÃa una vez' o 'HaBÃa uNa Vez' o 'HABÃA UNA VEZ' darÃa "verdadero". - asLowerCase (como minúsculas): idem al anterior, pero al revés. La otra opción, para evitar que tener que concatenar 2 opciones, es duplicar las funciones de búsqueda y hacerlas todas duplicadas (una que busque respetando mayúsculas/minúsculas y la otra que ignore esas diferencias). Ejm: endsWith y endsWithIgnoringCase, containsWord y containsWordIgnoringCase, etc. - match (coincide): Esta función permitirÃa comparaciones con caracteres 'comodÃn' (como el * del viejo DOS). Ejemplos de uso: '*pepe*' match: 'pepe' --> verdadero '*pepe*' match: 'pepa' --> false '*pepe*' match: 'xxx pepe yyy' --> verdadero 'pepe*' match: 'xxx pepe' --> false 'pepe*pepa' match: 'pepe ama a pepa' --> verdadero Esta última es interesante porque incluye a varias de las anteriores, ejemplo: 'pepe*' match: algo >>equivale a>> algo startsWidth: 'pepe'. '*pepe' match: algo >>equivale a>> algo endsWidth: 'pepe'. '*pepe*' match: algo >>equivale a>> algo contains: 'pepe'. Comentarios? > Obsérvese que findString da positivo cuando encuentra > 'Platón' y cuando encuentra 'Platona', lo que ¿quizás? es fácil de > mejorar. > > 2.Más efectos lógicos: me explico. Una "prueba" en un guión > corresponde a lo que en lenguaje natural llamamos un condicional: > > si encuentra la palabra clave 'Platón' muestra en la salida el texto > correspondiente > > Sin embargo, ¿hay una forma tan eficiente para activar un evento > cuando ocurra una conjunción de objetivos, por ejemplo, encuentre > "Platón" y "ética" ? Esto lo podés hacer hoy, anidando cajas de prueba. Ejemplo: > ¿Existe una forma tan eficiente para activar un evento cuando ocurra > una disyunción de objetivos, por ejemplo "Platón" o "ética"? Esto se lograrÃa con una caja de prueba detrás de otra caja de prueba. Saludos, -- Diego
condiciones OR.jpeg
(image/jpeg, 21.3 KB) - not displayed
condiciones anidadas.jpeg
(image/jpeg, 36.7 KB) - not displayed