Apúntate a la Zona De Descargas Reservadas (ZDDR). Solo son 20 Euros
Con solo 20€ ayudarás
a mantener el foro.


Seguir a udias en Twitter
Directorio de Empresas de Foros de informática


Todo lo que sueñas, se puede diseñar.
We build your dreams.

 - Principal - Responder - Estadísticas - Registrarse - Buscar - Lista de usuarios -  - Zona de Descargas
 -Privacidad y política de cookies -
Ayuda al foro con tu donación

Búsqueda en los foros

Foros en Udias.com / FileMaker / Palabras prohibidas en un campo:Evitar listado de palabras mediante validación.
Autor Mensaje

Miembro

Ocasional

  Karma   0

#1 Publicado: 4 Nov 2020 11:54



Necesito que filemaker me avise cuando una serie de palabras, cualquiera de ellas, sea introducida en un campo. Ya sea una de ellas, dos o mas.
lo he intentado mediante calculo con el signo not, or y desigual, y no hace nada.

Alguna idea?

lo que necesito es una validación inversa, en vez de que permita solo una serie de valores de una lista, que haga lo contrario, que permita cualquier valor excepto las palabras indicadas.

Gracias


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Erri Filemaker

Moderador


  Karma               8119

#2 Publicado: 4 Nov 2020 16:43 - Editado por: flusheddata



Hola.
Puedes hacerlo con PatternCount por ejemplo.
Adjunto archivo.
Sls.



Editado: Esta versión solo sirve para una única palabra en el campo

PalabrasProhibidas.z.zipArchivo adjunto: PalabrasProhibidas.z.zip
 

Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Pon tu sistema operativo y versión de FileMaker en tu perfil. Windows 10 Pro + FileMaker Pro 11/19

Moderador


  Karma               8119

#3 Publicado: 5 Nov 2020 07:57 - Editado por: flusheddata



Una versión más sofisticada.
Esta versión valida más de una palabra prohibida en el campo.
Se hace uso de una función personalizada recursiva en el campo Hallados_c.
Sls.

PalabrasProhibidas_V.zipArchivo adjunto: PalabrasProhibidas_V.zip
 

Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Pon tu sistema operativo y versión de FileMaker en tu perfil. Windows 10 Pro + FileMaker Pro 11/19

Moderador


  Karma               8119

#4 Publicado: 5 Nov 2020 17:06 - Editado por: flusheddata



Venga va, hoy estoy que lo vierto.
Otra versión que sustituye en un campo de cálculo las palabras prohibidas del campo por un texto a elegir (ej. [prohibida]).



Editado: Tal y como comenta Chunguillo la función tiene algunos fallos. La retiro hasta que la corrija.
Sls.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Pon tu sistema operativo y versión de FileMaker en tu perfil. Windows 10 Pro + FileMaker Pro 11/19

Miembro

Habitual

  Karma     28

#5 Publicado: 6 Nov 2020 11:21 - Editado por: chunguillo



Escelente aportación la v.2 flusheddata. La v.3 está bien pero, para mí, tiene un par de incovenientes que comento:

El primero es que la variable $contador está declarada en una posición incorrecta por lo que no se evalúa nunca la primera palabra del texto. Bastaría colocarla debajo de la declaración de la variable $campo y modificar

$contador < WordCount ( $campo ) por

$contador WordCount ( $campo )

Y el segundo es que nos encontramos con un PatternCount () que lo busca todo y un Substitute () que también lo hace pero que además discrimina entre mayúsculas y minúsculas. Esto será relevante o no según el uso que se le dé a la función.

Si probamos con cada una de estas frases tal cual están escritas y por separado en el ejemplo v.3 obtendremos resultados distintos y, lamentablemente, con palabras que no están prohibidas.

Yo tenía una sota y el de la sotana que estaba a sotavento un caballo.
Yo tenía una Sota y el de la sotana que estaba a sotavento un caballo.
Yo tenía una sota y el de la Sotana que estaba a sotavento un caballo.
Yo tenía una Sota y el de la sotana que estaba a Sotavento un caballo.


Es sólo una apreciación constructiva.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Mac y FileMaker

Moderador


  Karma               8119

#6 Publicado: 6 Nov 2020 13:00



chunguillo:
El primero es que la variable $contador está declarada en una posición incorrecta por lo que no se evalúa nunca la primera palabra del texto

Aquí me pierdo un poco. Si $contador = $contador + 1 está claro que en la primera llamada a la función tendrá el valor 1 por lo tanto sí funciona
MiddleWords ( $campo ; $contador ; 1 )

chunguillo:
$contador < WordCount ( $campo ) por

$contador ≤ WordCount ( $campo )

Teníendo en cuenta lo de arriba, la función sería llamada una última vez por ser $contador inferior al número de palabras. De esta forma $contador es igual al número de palabras ejecutándose la comparación.

Gracias por tu observación Chunguillo.
Otra cosa, acabo de recordar que la función Substitute no funciona de forma recursiva así que tengo que buscar otro sistema. Sería simplemente colocar las palabras para reconstruir la frase, pero se perderían retornos de carro si los hubiese así como otros símbolos.

Será cuestión de darle una vuelta con más tiempo.
Sls.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Pon tu sistema operativo y versión de FileMaker en tu perfil. Windows 10 Pro + FileMaker Pro 11/19

Moderador


  Karma               8119

#7 Publicado: 6 Nov 2020 13:04 - Editado por: flusheddata



Acabo de ver una cosa.
No es por cómo está declarada la variable por lo que no se ejecuta la primera vez. Lo que sucede es que la primera vez, al no existir $campo se le pone Campo sin Case.
Se soluciona haciéndolo como comentas tú. Poniendo el $contador tras la declaración de $campo.[i][/i]

Por otro lado queda confirmado que no se puede hacer substitute sobre substitute, pero podría haber una solución.

Lo miraré a ver...


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Pon tu sistema operativo y versión de FileMaker en tu perfil. Windows 10 Pro + FileMaker Pro 11/19

Moderador


  Karma               8119

#8 Publicado: 6 Nov 2020 13:18 - Editado por: flusheddata



Let ( [
$contador = $contador + 1 ;
$campo =
Case (
IsEmpty ( $campo ) ;
Campo ; //La primera vez que se ejecuta la función, $campo = Campo sin comprobar si existe la palabra prohibida.
Case (
PatternCount ( ¶ & Prohibidas & ¶ ; ¶ & MiddleWords ( $campo ; $contador ; 1 ) & ¶ ) ;
Substitute ( $campo ; MiddleWords ( $campo ; $contador ; 1 ) ; TextoSustitucion ) ;
$campo
)
)
] ;
Case ( $contador < WordCount ( $campo ) ;
SustituirProhibida ( Campo ; Prohibidas ; TextoSustitucion ) ;
Let ( [
_campo = $campo ;
$campo = "" ;
$contador = ""
] ;
_campo
)
)
)
/*
flusheddata 2020
*/


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Pon tu sistema operativo y versión de FileMaker en tu perfil. Windows 10 Pro + FileMaker Pro 11/19

Miembro

Habitual

  Karma     28

#9 Publicado: 6 Nov 2020 13:19 - Editado por: chunguillo



A eso me refería. La primera vez la variable $contador coge el valor 1 y en el Case la variable $Campo coge el valor de Campo, no interviene para nada la segunda condición con MiddleWords ( $campo ; $contador ; 1 ) y se realiza otra pasada. En este caso la variable contador coge el valor 2 y en el Case ahora sí interviene la segunda condición con MiddleWords ( $campo ; $contador ; 1 ) o la tercera condición. Pero ahora estamos en la segunda palabra.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Mac y FileMaker

Moderador


  Karma               8119

#10 Publicado: 6 Nov 2020 13:24 - Editado por: flusheddata



Correcto, pones primero la función case. En este caso la primera vez se rellena $campo con Campo, la función Substitute no hace nada porque $contador aún no existe, ya que se declara/asigna a continuación.

Sls.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Pon tu sistema operativo y versión de FileMaker en tu perfil. Windows 10 Pro + FileMaker Pro 11/19

Miembro

Habitual

  Karma     28

#11 Publicado: 6 Nov 2020 13:38 - Editado por: chunguillo



OK.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Mac y FileMaker

Moderador


  Karma               8119

#12 Publicado: 7 Nov 2020 12:44 - Editado por: flusheddata



Ya funciona en la mayoría de escenarios.
De todos modos la buena es la V2 que hace lo que el usuario necesitaba.
Gracias de nuevo Chunguillo por tu inestimable aporte.
Sls.


Editado: Descargad la versión de chunguillo. Funciona muy bien.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Pon tu sistema operativo y versión de FileMaker en tu perfil. Windows 10 Pro + FileMaker Pro 11/19

Miembro

Habitual

  Karma     28

#13 Publicado: 7 Nov 2020 13:12 - Editado por: chunguillo



Como bien dices, flusheddata, contempla sólo ciertos escenarios. Si yo a la palabra sota le añado una "," ( "sota," ) no la contempla. Ni tampoco con los demás signos de puntuación excepto el punto. Aparte de que la he probado y si el texto es extenso se vuelve bastante lenta.

Subo, después de hacer un par de funciones y analizar el tiempo de ejecución, una que sí contempla todos los casos y va bastante bien. No he terminado de depurarla pero creo que ya más o menos es válida.

Prueba a pegar el texto que subo en el archivo y me comentas.

Infomación: he sustituido el archivo que había puesto anteriormente en este mismo post por el que hay ahora para contemplar "también" la posibilidad de no sustituir las palabras prohibidas en el texto por otra sino resaltarlas solamente en otro color. Disculpas.

Marcar_Prohibidas.fm.zipArchivo adjunto: Marcar_Prohibidas
 

Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Mac y FileMaker

Moderador


  Karma               8119

#14 Publicado: 7 Nov 2020 14:05 - Editado por: flusheddata




A mí no se me habría ocurrido ni en sueños.
Ir comiendo el campo a "bocados" y reconstruyéndolo en la variable es de traca. Y si he entendido bien la función (viva el paracetamol) las migas son los signos de puntuación que van quedando.
He hecho pruebas y funciona de cine.

Ya me gustaría a mí llegar a ese nivel.

Enhorabuena chunguillo y mil gracias. Lo guardo como oro en paño.
(Lo he puesto aquí comprimido porque a veces pierde la extensión)

Sls.

Marcar_Prohibidas.zi.zipArchivo adjunto: 🎁Marcar palabras prohibidas (Chunguillo)🎁
 

Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Pon tu sistema operativo y versión de FileMaker en tu perfil. Windows 10 Pro + FileMaker Pro 11/19

Miembro

Habitual

  Karma     28

#15 Publicado: 7 Nov 2020 14:29



Muchas gracias, flusheddata.

Con respecto a lo del nivel ya me gustaría a mí tener el tuyo y lo digo tal cual y literalmente.

En lo tocante a la función la ventaja que tiene es que FileMaker no tiene que perder tiempo en recorrer continuamente el texto para evaluar posiciones o la palabra que corresponda puesto que siempre estamos situados al principio y esto ahorra bastantes cálculos. Pero seguro y casi seguro que hay alguna solución más eficaz y menos retorcida.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Mac y FileMaker

Moderador


  Karma               8119

#16 Publicado: 7 Nov 2020 14:34 - Editado por: flusheddata



chunguillo:
Pero seguro y casi seguro que hay alguna solución más eficaz y menos retorcida.

No lo creo, es muuuuuy inteligente. Me recuerda a una de mis funciones favoritas para quitar caracteres del inicio y final de un texto. La saqué de briandunning y me parece genial.

// SYNTAX: Trim4 ( text )
// ORIGIN: http://www.nightwingenterprises.com
// NOTES: Trims leading and trailing spaces, non-breaking spaces, tabs and CRs
// (this version requires FileMaker 10 or later)
// VERSION: 1.0v3
// © 2004 Ray Cologon, NightWing Enterprises, Melbourne, Australia

Let([
sT = Char(9) & Char(13) & Char(32) & Char(160);
C1 = PatternCount(sT; Left(text; 1));
Cn = PatternCount(sT; Right(text; 1));
Ca = C1 + Cn];
If(Ca;
Trim4(Middle(text; 1 + C1; Length(text) - Ca));
Text)
)


En este caso se va quedando todo el rato con Middle de modo que tiene muy poco que procesar en cada vuelta.
Me recuerda muchísimo a la tuya.
En dos palabras:
Bru - Tal



Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Pon tu sistema operativo y versión de FileMaker en tu perfil. Windows 10 Pro + FileMaker Pro 11/19

Miembro

Habitual

  Karma     28

#17 Publicado: 7 Nov 2020 15:46 - Editado por: chunguillo



Y ya puestos subo la versión que hice ayer, que funciona perfectamente con respecto a lo que debe de hacer pero descartada porque su tiempo de ejecución con textos muy extensos es significativo –precisamente por lo que se comenta anteriormente–. Ello fue la razón de plantearme el buscar otra posibilidad.

Espero sirva para otros casos.

Marcar_Prohibidas_m.zipArchivo adjunto: Marcar Prohibidas (mas lenta)
 

Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Mac y FileMaker

Miembro

Constante

  Karma           386

#18 Publicado: 7 Nov 2020 22:15



Son fantásticos vuestros RETOS CREATIVOS...

Teneis un talento estupendo del que nos aprovechamos el resto de personas...

Muchas gracias flusheddata y chunguillo !!!


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Windows 10. Filemaker 16
Su respuesta

Estilo Negrillas  Estilo Italico  Estilo Subrayado  URL De La Imagen  URL De La Web  Preformatted Text  YouTube URL  Sin código BB
Emoticones
:) ;) :up: :down: :biglol: :confused :cool: :mad: :sad: :shame: :smirk: :tongue: ... Más  Emoticones desactivados
Color de texto
Texto en negro Texto en blanco Texto en gris Texto en rojo Texto en azul Texto en verde Texto en rojo oscuro Texto en cian Texto en azul oscuro Texto en púrpura Texto en amarillo Texto en rosa Texto en naranja Texto en verde oliva Texto en marrón



 » Usuario  » Contraseña 
Solo Usuarios Registrados Pueden Postiar Aqui.
 

Tópicos relacionados con Palabras prohibidas en un campo:Evitar listado de palabras mediante validación.

Evitar Repetición de palabras
duda con listado de palabras
Campo de Palabras clave
Busqueda de varias palabras en un mismo campo
Aportación: dividir el texto de 1 campo en otros 2 sin cortar palabras ni frases


Conectados: Invitados - 10
Miembros - 0
En verde usuarios ZDDR

Realizado con miniBB © 2001-2020
Para Udias.com © 1996-2020
Hosting con Interdominios