Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Comprimir Para Codificar (https://www.clubdelphi.com/foros/showthread.php?t=81744)

Carmelo Cash 13-12-2012 17:54:14

Comprimir Para Codificar
 
Hola foro:

Necesito saber si conocen algún método o algorítmo para comprimir un número y generar un código legible.

Resulta que los códigos que debo asignar a los clientes deben tener varios datos incuidos, entonces me queda un código muy largo.

El número más grande que queda es 99.999.999.999.99.99 donde cada grupo de numeros indica un dato distinto.

pero escribir estos códigos es muy engorroso, entonces se me ocurrió que podía convertir ése numero en un codigo alfanumerico por ejemplo AZT984 . (esto último es solo una idea no es un código real).

Probé pasarlo a Hexadecimal pero igual queda muy largo.

Bueno, tal vez alguien me de una idea para arrancar.

Desde ya gracias por su atención.

nlsgarcia 13-12-2012 18:04:51

Carmelo Cash,

Cita:

Empezado por Carmelo Cash
Resulta que los códigos que debo asignar a los clientes deben tener varios datos incuidos, entonces me queda un código muy largo.

El número más grande que queda es 99.999.999.999.99.99 donde cada grupo de numeros indica un dato distinto.

pero escribir estos códigos es muy engorroso, entonces se me ocurrió que podía convertir ése numero en un codigo alfanumerico por ejemplo AZT984 . (esto último es solo una idea no es un código real).

¿Has considerado la posibilidad de crear una tabla de códigos de clientes?, la clave podría ser la que tu requieras, por ejemplo AZT984 y el dato asociado a la clave sería el código del cliente, por ejemplo 99.999.999.999.99.99

Otra idea sería asignar valores alfanuméricos a las partes integrantes del código para permitir codificar esta, por ejemplo:
Cita:

P1-P2---P3---P4-P5-P6
99.999.999.999.99.99

- En la Primera Posición (P1): A=9, B=99

- En la Segunda Posición (P2): C=9, D=99, E=999

- En la Tercera Posición (P3): F=9, G=99, H=999

- En la Cuarta Posición (P4): I=9, J=99, K=999

- En la Quinta Posición (P5): L=9, M=99, N=999

- En la Sexta Posición (P6): O=9, P=99, Q=999
Espero sea útil :)

Nelson.

nlsgarcia 13-12-2012 18:46:43

Continuación del mensaje 2:

Y luego por código se puede reconstruir la clave, por ejemplo: BEHKMP equivale al código 99.999.999.999.99.99

Lo anterior es una forma de simplificar la clave a una forma más manejable.

Espero sea útil :)

Nelson.

mamcx 13-12-2012 19:38:51

Una forma esta explicada en http://stackoverflow.com/questions/7...-url-shortener (se me ocurrio pensando en como se hace un recortador de url). Alli se habla de como se puede pasar de Base10 a otras. Base64 es la mas facil de todas. Con python hice la prueba:

Código PHP:

import base64

>base64.b64encode('999999999999999')
Result>'OTk5OTk5OTk5OTk5OTk5' 

Asi que es viable. Buscando un ejemplo en delphi (seone!):

http://delphi.jmrds.com/?q=node/43


Otro:

http://www.swissdelphicenter.ch/torr...de.php?id=1524

P.D: Base64 sirve para todo tipo de codificacion. Es la forma como se empotra una imagen en un html, por ejemplo (osea, sin url) y como se envian archivos por html...

mamcx 13-12-2012 19:50:51

AH, leyendo mejor la pregunta la idea es que sea facil de tipear por el usuario. Base64 genera datos muy bizarros. Otro ejemplo:

http://stackoverflow.com/questions/9...ort-unique-ids

http://www.codinghorror.com/blog/200...-practice.html

Por lo que parece CRC32 se ve mejor...


La franja horaria es GMT +2. Ahora son las 10:21:35.

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