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:
|
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'). //------------------------------------------------------------------------ |
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 ? |
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:
Gerard. |
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. |
La franja horaria es GMT +2. Ahora son las 17:36:24. |
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