Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-02-2021
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
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:
/* 
   devuelve la posición del caracter que no está
   en la máscara, o -1 si todos los caracteres coinciden
   con la máscara 
*/
.
int buscar(char *mskchar *str)
 {
  
int ijx;
  for (
i=0str[i] != '\0'i++) {
    
0;
    for(
j=0msk[j] != '\0'j++)
      if (
msk[j] == str[i]) 1;
    if (!
x) return i;
  }
  return -
1;

Por ejemplo:
Código PHP:
printf("\n%d\n",buscar("abc""acaba")); 
devuelve -1
y
Código PHP:
printf("\n%d\n",buscar("abc""acabo")); 
devuelve 4


Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #2  
Antiguo 03-03-2021
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Poder: 12
aguml Va por buen camino
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:
void __fastcall TForm1::EditValue1KeyPress(TObject *SenderSystem::WideChar &Key)
{
    if(
Key == 0x16){
        if(
Clipboard()->HasFormat(CF_TEXT)){
            
String CBText Clipboard()->AsText;
            
EditValue1->Text SuprimirCaracteresInvalidos(CBText.UpperCase());
        }
    }else if((
Key '0' || (Key '9' && (Key 'A' || Key 'F'))) && Key != '\b' && Key != 0x03 && Key != 0x18)
        
Key NULL;
}
//---------------------------------------------------------------------------

String TForm1::SuprimirCaracteresInvalidos(String input)
{
    
int ij;
    
String output "";
    
String mask "0123456789ABCDEF";

    for(
1input.Length() > && input.Length(); i++){
        for(
j=1mask.Length(); j++){
            if(
input[i] == mask[j]){
                
output += (WideString)input[i];
            }
        }
    }
    return 
output;

Además también me falta que al pegar con el menú contextual tenga el mismo comportamiento. El menú contextual o popup no lo he creado yo, es el de Windows y no se como hacer eso.

Última edición por aguml fecha: 03-03-2021 a las 11:17:25.
Responder Con Cita
  #3  
Antiguo 03-03-2021
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Poder: 12
aguml Va por buen camino
Lo del menú contextual lo he solucionado con mi propio popupmenu y gestionando ahí pero lo de Ctrl+V no lo consigo.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 00:42:01.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi