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
  #21  
Antiguo 10-11-2015
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por agustibaldo Ver Mensaje
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.
¿De qué volumen estamos hablando?
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.
Responder Con Cita
  #22  
Antiguo 10-11-2015
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por agustibaldo Ver Mensaje
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.
Por fin vas hilando más fino y al verdadero dilema.
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,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #23  
Antiguo 10-11-2015
agustibaldo agustibaldo is offline
Miembro
 
Registrado: nov 2006
Posts: 105
Poder: 18
agustibaldo Va por buen camino
Cita:
Empezado por Delphius Ver Mensaje
Por fin vas hilando más fino y al verdadero dilema.
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,
[delphius], en una respuesta anterior había detallado para que lo necesitaba exactamente. Te copio el mensaje:

Cita:
Básicamente, el problema es que tengo una cadena de 28 caracteres que me identifica un proceso y debo convertirla (o comprimirla o codificarla) en otra cadena de menor longitud (8 o 10 caract. aprox.) que tiene que ser impresa en una etiqueta y posteriormente leída e ingresada manualmente por un usuario (sin posib. de utilizar cód. de barra). Imagínense un usuario con la etiqueta en la mano tratando de leer en un espacio reducido y tipeando 28 caracteres.
En este momento estoy haciendo pruebas con un generador de cadenas aleatorias alfanuméricas para estos IDs. Lo saqué una respuesta de [Casimiro Notevi] y [Antoniov]
Después les cuento que tal fue.
Nuevamente, muchas gracias por su tiempo.
Saludos.
Responder Con Cita
  #24  
Antiguo 10-11-2015
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
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.

Código Delphi [-]
Largo1= C1
Largo2= C2
Largo3= C3
__________________
El malabarista.
Responder Con Cita
  #25  
Antiguo 10-11-2015
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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
// Saludos

Última edición por roman fecha: 10-11-2015 a las 21:21:47.
Responder Con Cita
  #26  
Antiguo 10-11-2015
agustibaldo agustibaldo is offline
Miembro
 
Registrado: nov 2006
Posts: 105
Poder: 18
agustibaldo Va por buen camino
Cita:
Empezado por mamcx Ver Mensaje
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 problema es que estuve buscando alguna librería o función de hash/encoding y no pude encontrar ninguna. Podrías recomendarme alguna?
[roman], estoy probando justo eso, cuando lo tenga resuelto les cuento.

Muchas gracias.
Responder Con Cita
  #27  
Antiguo 10-11-2015
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por agustibaldo Ver Mensaje
El problema es que estuve buscando alguna librería o función de hash/encoding y no pude encontrar ninguna. Podrías recomendarme alguna?
[roman], estoy probando justo eso, cuando lo tenga resuelto les cuento.

Muchas gracias.
Con lo que dice roman, ni falta hace emplear una biblioteca que te lo haga. No es algo taan complicado en diseñar un algoritmo que haga esto:

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,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #28  
Antiguo 11-11-2015
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Neftali Ver Mensaje
¿De qué volumen estamos hablando?
Pensando en 1 día o en un año.
Cita:
Empezado por Delphius Ver Mensaje
No es algo taan complicado en diseñar un algoritmo que haga esto:
AAAA, AAAB, AAAC ... AAAZ, AAA0, AAA1, ... AAA9, AABA, AABB, ... AABZ, AAB0, ... AAB9, ... ZZZZ, ... 9999
Pues justo mi pregunta iba por ahí.
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.
Responder Con Cita
  #29  
Antiguo 11-11-2015
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por Neftali Ver Mensaje
Pues justo mi pregunta iba por ahí.
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.
Sea cual fuese el diseño que se utilice para generar el código alfanumérico tiene su límite. Por eso yo hice los cálculos de cuantos IDs/códigos se pueden conseguir para que agustibaldo se diera cuenta de lo que esto representa. En tu ejemplo hay 10000 x 27^4 x 100 = 531441000000 combinaciones. ¿Mucho, poco? no lo se pero debe hacerse un adecuado análisis... no vaya a ser cosa que la mediciona sea peor que el remedio.

Un código alfanumérico debe ser lo suficiente extenso como para permitir la entrada de una buena cantidad de nuevos items, pero a su vez debe ser lo más corto y fácil de memorizar. Por ejemplo, algo como NNN-XXX siendo N: número, X:letra es un código bastante simple y fácil de recordar. A su vez permitirá exactamente 1000 combinaciones numéricas, y por cada una de ellas 27^3 = 19683 alfanuméricas. Siendo un total de: 19683000. Las patentes de los autos en Argentina sigue este diseño, y ya estamos a punto de quebrarlo... y eso que las ventas de autos nuevos y usados viene en picada.

Acá sucede lo mismo, si agustibaldo no tiene cuidado o se queda chico, bastante pronto, o termina haciendo un sistema de "codificación" bastante amplio, que no se termina de llenar y que no sea fácil de llevar ni de recordar.

Por lo general estos tipos de códigos alfanuméricos se emplea cuando la cantidad de elementos es relativamente manejable. Lo suficiente como para permitir deducir con poco esfuerzo mental a que items hace referencia. Ni muchos, ni pocos. A su vez, se espera además que esta cantidad sea más o menos estable o previsible y no varíe. Son muy útiles en los ambientes industriales en donde ya se conocen la cantidad total de posibles productos o materias primas que se utilizarán o se pueden producir.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]

Última edición por Delphius fecha: 11-11-2015 a las 12:41:16.
Responder Con Cita
  #30  
Antiguo 11-11-2015
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
Creo que todo esto es divagar, lo que de verdad se necesita es saber exactamente qué quiere hacer y qué necesita agustibaldo
Responder Con Cita
  #31  
Antiguo 11-11-2015
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Creo que todo esto es divagar, lo que de verdad se necesita es saber exactamente qué quiere hacer y qué necesita agustibaldo
Te equivocas amigo. Muchas veces no saben lo que quieren hacer y tampoco saben para que lo necesita. Lo que si saben, es que lo quieren para ayer.
Por donde debió empezarse el hilo es hacerse las siguientes preguntas:
¿Que se pretende seriamente "ganar" con todo esto? ¿En verdad aporta un valor de negocio y le da un valor agregado? ¿Cuántas veces o con que frecuencia se usará esta funcionalidad? ¿Resuelve un problema o más bien lo sustituye o esconde por otro?

Las veces que se ha visto por los foros preguntas del estilo "necesito X cosa", pensaban en Y y la solución pasaba por Z.
Este hilo no es la excepción. Y me extraña de todos ustedes que no se hayan cuestionado... al menos un "ummm, ¿y no será que estás usando un cañón cuando una .22 basta?"

Vengo yo y digo que el bosque tapa el árbol, y recién esto toma color. Lo digo de nuevo...lo veo verde....

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #32  
Antiguo 11-11-2015
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
Cita:
Empezado por Delphius Ver Mensaje
Te equivocas amigo.
Seguro que sabe para qué lo quiere. Otra cosa distinta es que sea lo más adecuado, o no, para lo que necesita.
Responder Con Cita
  #33  
Antiguo 11-11-2015
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Seguro que sabe para qué lo quiere. Otra cosa distinta es que sea lo más adecuado, o no, para lo que necesita.
No. CREE saber lo que quiere.
Ante la evidencia de que ha averiguado (y se le ofrecieron opciones) tan dispares yo lo pongo en duda. Lo único puntual es que quiere acortar, para "ahorrarse" un algo para hacer otro algo no concretado ni definido.
No sería mejor preguntar en lugar de los diferentes cuchillos que hay para cortar, ¿porqué, para que, con fin, y que se espera hacer con los trozos cortados?

Veo un bosque, el árbol sigue ahí escondido.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #34  
Antiguo 11-11-2015
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
Pues eso es lo que he dicho
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
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


La franja horaria es GMT +2. Ahora son las 23:26:08.


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