FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Función que devuelva la posición del primer carácter que no esté en la máscara de bus
Buenas, pues eso, hay alguna función en C para buscar unos caracteres en una cadena y que devuelve la posición de la primera o última de cualquier carácter pero yo quiero lo contrario, o sea, Supongamos que la función se llama buscar, pues:
Buscar("abc", "acabo"); Devolviese la posición del carácter 'o' ya que no está entre los caracteres indicados en la máscara de busqueda, no sé si me explico. ¿Conocen algo así? Lo que quiero hacer es filtrar lo que se pegue desde el portapapeles a un tedit y que solo sean caracteres hexadecimales. |
#2
|
||||
|
||||
Hola.
Si se diera que hay dos o más caracteres que no existen en la máscara de búsqueda, ¿ Cuál debería devolver ? Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#3
|
||||
|
||||
Eso es lo de menos ya que si hay uno no válido la idea es no permitir el pegado.
|
#4
|
||||
|
||||
Podrías usar una expresión regular para hacer la busqueda.
El valor de búsqueda lo conviertes a un pattern válido. Por ej, "abc" podría ser "[a]|[b]|[c]". De esa manera encontrará "acab" de "acabo" Ejemplo colores hexadecimales: Texto de busqueda: "#0123456789ABCDEF" Pattern: "[#]|[0]|[1]|[2]|[3]|[4]|[5]|[6]|[7]|[8]|[9]|[A]|[b]|[C]|[D]|[E]|[F]" (Que podría resumirse en "[#]|[0-9]|[A-F]") Resultados Código:
ORIGEN RESULTADO -#ffff00., #ffff00 -#e5e500[] #e5e500 -#cccc00`^ #cccc00 -#b2b200{} #b2b200 -#ff0000% #ff0000 -#e50000$ #e50000 -#cc0000" #cc0000 -#b20000! #b20000 -#0000ffq #0000ff -#1919ffw #1919ff -#3232ffr #3232ff -#4c4cfft #4c4cff
__________________
Buena caza y buen remar... http://mivaler.blogspot.com |
#5
|
||||
|
||||
Pero yo no quiero filtrar, lo que quiero es que si el formato no es válido no se pegue nada de nada.
Podría usar strspn para ello pero si la vcl tiene algo así me ahorro de añadir la librería string solo para eso. |
#6
|
||||
|
||||
Hola.
No conozco alguna función de la VCL que haga lo que buscas. Y si deseas prescindir de la librerá string, tendrías que hacer una función en C que lo realize, vg.r.: Código PHP:
Código PHP:
y Código PHP:
Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#7
|
||||
|
||||
Bueno, al final lo he pensado mejor y voy a hacer que imprima solo caracteres válidos pero la cosa es que consigo filtrarlo pero me lo muestra al final de lo que pego con Ctrl + V en vez de sustituir lo que pego por lo filtrado. Tengo esto:
Código PHP:
Última edición por aguml fecha: 03-03-2021 a las 11:17:25. |
#8
|
||||
|
||||
Lo del menú contextual lo he solucionado con mi propio popupmenu y gestionando ahí pero lo de Ctrl+V no lo consigo.
|
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
¿funcion que devuelva mas de 1 valor? | JXJ | Varios | 10 | 15-04-2011 20:13:56 |
Elegir Posicion de una cadena String y eliminar caracter en una posicion deseada | BuRtOn | Varios | 14 | 26-03-2009 23:59:39 |
Función devuelva día del año | Moparova | Varios | 2 | 23-04-2007 23:03:59 |
Funcion que devuelva mas de un valor | ckaki | Varios | 1 | 27-11-2003 00:07:59 |
Posición del primer caracter de linea en un RichEdit | SCH | Varios | 0 | 22-09-2003 20:51:32 |
|