Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-07-2023
rrf rrf is offline
Miembro
 
Registrado: ago 2003
Ubicación: S/C Tenerife, España
Posts: 454
Poder: 21
rrf Va por buen camino
¿Cómo reconocer si los caracteres 'Ñ' y 'ñ' están en una cadena?

Hola a tod@s.

Tengo un pequeño problema con el reconocimiento de los caracteres 'Ñ' y 'ñ' en una cadena y lo expongo por si me puedes ayudar.

En Lazarus 2.2.6 , en una función que recibe como parámetro un String de texto (cadena), se leen todos los caracteres de esa cadena, actuando de forma diferente en función de cual es el caracter leido.

Todo funciona normalmente con los caracteres del alfabeto inglés; aunque no reconoce la comparación con los caracteres 'Ñ' o 'ñ'.

Este es el código que utilicé:


Código Delphi [-]
  
for i := 1 to length(cadena) do
  begin
  
    case upcase(cadena[i]) of

        'A': valor := 1;
        'B': valor := 2;
    
    // Lo intenté en esta parte con 'Ñ' y no funcionó
    
        'Y': valor := 10;
        'Z': valor := 7;
    
    
    end;

       // Así tampoco funciona
    if ( (cadena[i] = 'Ñ') or (cadena[i] = 'ñ') )
    then
      begin
        // ...
      end;

  end;

¿Sabes como se puede saber si las letras 'ñ' o 'Ñ' aparecen en el String?.

Muchas gracias de antemano.

Saludos.
Responder Con Cita
  #2  
Antiguo 24-07-2023
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Recuerda que usa utf8, por lo que Ñ lo mismo es el caracter 195, por ejemplo.
Responder Con Cita
  #3  
Antiguo 24-07-2023
rrf rrf is offline
Miembro
 
Registrado: ago 2003
Ubicación: S/C Tenerife, España
Posts: 454
Poder: 21
rrf Va por buen camino
Gracias Casimiro.

Me has dado la pista para encontrar la solución:

Añadiendo LazUTF8 en el uses, usando la función UTF8CompareStr , que está documentada en:

https://lazarus-ccr.sourceforge.io/d...omparestr.html

He podido hacer una comparación que me permitirá diferenciar si es una 'Ñ', una 'ñ' u otro caracter. Aún no lo he hecho, aunque las pruebas me salieron bien y todo indica que funcionará.

Saludos.
Responder Con Cita
  #4  
Antiguo 24-07-2023
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
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
Extraer caracteres de una cadena RoyTan Varios 2 01-10-2011 20:13:18
Convertir cadena aleatoria en cadena de N caracteres DANY OOP 3 12-03-2009 20:49:21
¿Como se recogería en una variable la cadena de caracteres? Kamikaze Varios 4 07-07-2005 18:26:04
Cadena de mas de 50 caracteres luigidean Tablas planas 3 02-10-2004 03:09:39
Sockets-Reconocer una cadena de texto. DarkByte Internet 14 14-06-2004 22:37:29


La franja horaria es GMT +2. Ahora son las 20:50:36.


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