![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Por que necesitas 8 o 10 caracteres? No te bastaria con tener un Id que identifique a cada string? Con un sencillo diccionario<integer, string> de delphi lo solucionarias
|
|
#2
|
|||
|
|||
|
Porque el origen es un código de 28 caracteres y tengo que convertirlo en algo mas corto que tiene que ser leído e ingresado manualmente por un usuario desde una etiqueta. El objetivo de ser 8/10 caracteres es para establecer algún formato (estilo serial number) donde los dígitos no son correlativos sino que es un código alfanumérico conformado por letras y números.
|
|
#3
|
||||
|
||||
|
Cita:
Pensando en 1 día o en un año.
__________________
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. |
|
#4
|
||||
|
||||
|
Cita:
Nos pusiste un bosque enfrente del árbol. Aún empleando ese "id" alfanumérico restringido a cierta longitud va a ser tarde o temprano una limitación. Empleando las 27 letras y los 10 números tienes para un ID de longitud de 10, un máximo de 37^10 posibles ids. Saludos, |
|
#5
|
|||
|
|||
|
Cita:
Cita:
Después les cuento que tal fue. Nuevamente, muchas gracias por su tiempo. Saludos. |
|
#6
|
||||
|
||||
|
Mira. A ti solo te importa que la cadena sea corta. Puedes usar cualquier libreria de hash/encoding que te cumpla con el largo, pero si nos atenemos a lo que dices, puedes pre-generar las cadenas superfacil.
__________________
El malabarista. |
|
#7
|
||||
|
||||
|
Yo voy con mamcx. Para este problema específico creo que le estás dando demasiadas vueltas. Si dispones de una tabla en la bd donde almacenar la correspondencia entre las cadenas largas y cortas, lo único que necesitas es un autonumérico/generador que puedes prefijar con una cadena al gusto o simplemente rellenar con ceros iniciales:
Código:
corta------original 00000001 920B2995-7686-4A92-9956-ABBA906D31C1 00000002 6EE9F0BC-6AD2-48FF-BD15-00890556403D ... 00000010 7D8512CF-57C5-4792-A0D2-B26CDCFABC7D 00000011 2DF078B9-10D0-4F5E-BF85-55410DA4EB5C ... 00003812 02050FD5-DBFB-4EF5-B478-7EDEE9369AB2 Última edición por roman fecha: 10-11-2015 a las 21:21:47. |
|
#8
|
|||
|
|||
|
Cita:
[roman], estoy probando justo eso, cuando lo tenga resuelto les cuento. Muchas gracias. |
|
#9
|
||||
|
||||
|
Cita:
AAAA, AAAB, AAAC ... AAAZ, AAA0, AAA1, ... AAA9, AABA, AABB, ... AABZ, AAB0, ... AAB9, ... ZZZZ, ... 9999 Y disponer en una tabla algo como: ID - CadenaCorta - CadenaLarga 1 - AAAA - etc 2 - AAAB - etc ... Y aquí es donde entra lo que yo dije: dependiendo de la longitud que se establezca a la cadena, y el juego de carácteres definido, tendrás la cantidad máxima de registros que puede soportar. Que para el caso de 27 letras más 10 números y una cadena de longitud de 10 será posible tener 37^10 = 4808584372417849 registros. Esto puede ser mucho o poco según el volumen de datos. ¡Y nota en como el tema de la cadena corta en realidad no hace más que hacer un intermediario más! Ya existe una relación 1-1 en un ID autonumérico y la correspondiente cadena larga. Proceder a generar una cadena corta que "identifique" o que haga de alias para cada cadena larga no deja de ser otra relación 1-1 ya existente, ya que actúa como una clave artificial más. Saludos, |
|
#10
|
||||
|
||||
|
Cita:
Aquí para otros temas se usa un código que se genera como: AAAA-XXXX-NN. Un ejemplo sería este: 2015-TFGR-01 En este caso es relevante el año (los 4 primeros). Tal vez en el tuyo no lo sea, pero la idea es la misma. Además facilita el trabajo de entrada al operario y sirve de comprobación.
__________________
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. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| numeración alfanumérica y aleatoria | Aprendiendo | OOP | 5 | 06-09-2011 19:34:25 |
| 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 |
| crear una llave alfanumerica con un generador | reina | SQL | 3 | 17-08-2005 19:49:44 |
| Extraer números en una string alfanumérica | Tonio | Varios | 4 | 23-10-2003 10:22:04 |
|