FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Verificar cadena es Hexadecimal
Hola a todos,
estoy desarrollando una clase de calculo de CRC y necesito una ayudita. Para calcular el CRC, solicito una cadena de longitud X, pero que hay que pasar en HEXadecimal. Lo que necesito es una rutina, rápida, que chequee que todos los carácteres del string están en el rango Hexadecimal (0..9,A..F). La cadena, puede ser de cualquier longitud. Y se trata de no "cargar" la clase con librerias externas, etc... De momento, lo he hecho así: Cita:
Última edición por yapt fecha: 19-11-2009 a las 12:13:17. |
#2
|
||||
|
||||
Puedes utilizar la función que viene con Delphi:
Aunque no te haga falta esa conversión explícita, en la ayuda de esta función dice: //------------------------------------------------------------------------ ... HexToBin returns the number of characters in Buffer that have not been used because Text did not contain valid hexadecimal characters ('0'..'f'). //------------------------------------------------------------------------
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#3
|
||||
|
||||
La nota de la ayuda, me frena de utilizar la función que me indicas, porque tendría que chequear previamente todos los carácteres o hacer una conversión a lowercase.
Cita:
Alguna idea más ? |
#4
|
|||
|
|||
Hola,
En Delphi, las cadenas de caracteres empiezan con un indice de uno. En vez de Código:
for x := 0 to (length(cadena)-1 do Código:
for x := 1 to length(cadena) do Esta és aún más rápida (Te ahoras las conversiones de TryStrToInt): Código:
Result := false; for x := 1 to length(cadena) do if not (Cadena[x] in ['0'..'9','a'..'f','A'..'F']) then exit; result := true; Gerard. Última edición por gerardus fecha: 19-11-2009 a las 13:38:58. |
#5
|
||||
|
||||
El código no estaba probado todavía. Un despiste. Gracias gerardus.
Me gusta más tu código. Lo cambio. Muchas gracias de nuevo y un saludo. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Convertir cadena aleatoria en cadena de N caracteres | DANY | OOP | 3 | 12-03-2009 20:49:21 |
Funcion para borrar la cadena que aparesca repetida dentro de otra cadena | flystar | Varios | 1 | 02-07-2007 23:51:10 |
Funcion para buscar cadena dentro de otra cadena y el numero de veces | flystar | Varios | 3 | 02-07-2007 22:48:08 |
convertir cadena hexadecimal a imagen | Barzaugc | SQL | 3 | 20-09-2006 16:06:44 |
Verificar si el valor introducido en un edit1.text es un numero o una cadena | ctronx | Varios | 6 | 26-06-2004 03:14:18 |
|