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
  #1  
Antiguo 13-02-2008
luxus luxus is offline
Miembro
 
Registrado: oct 2004
Posts: 134
Poder: 20
luxus Va por buen camino
Generación de Código Alfanúmerico Automatico

Hola Amigos,

Vamos a ver si me explico para no liarnos y a ver si me podeis echar una mano.

Tengo que implmentar un pequeño programa para que un codigo alfanumérico de 14 dígitos se autoincremente de forma automática. Es decir, si el código es LX345J8ON9913 el siguiente codigo sea LX345J8ON9914 y así sucesivamente. ¿Sabeis si hay un programa con prestaciones similares y donde puedo descargarlos? ¿Alguna sugerencia para su implementación?

Gracias y un saludo a todos.
Responder Con Cita
  #2  
Antiguo 13-02-2008
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 22
ixMike Va por buen camino
Bueno, depende de cómo funcione ese código alfanumérico. El ejemplo que has puesto se entiende, pero, ¿y si el código es 1234567890AAA9? ¿Qué pasaría? ¿Se convertiría en 1234567890AAB0? ¿O en 1234567890AAAA? Dinos, cómo funciona con las letras, por favor. Gracias.


Salu2.

P.D.: También sería bueno saber si tienen una cierta estructura (tantas letras, tantos números en ciertas posiciones) o si es completamente mezclado.
Responder Con Cita
  #3  
Antiguo 13-02-2008
luxus luxus is offline
Miembro
 
Registrado: oct 2004
Posts: 134
Poder: 20
luxus Va por buen camino
Hola ixMike,

Gracias por tu ayuda. Con respecto a tus dudas, del ejemplo que te mostré el siguiente codigo generado será el primero de los ejemplos.

En cuanto a la estructura, no hay ninguna secuencia determinada, solamente es una combinación de numeros y letras mezclados.

Gracias nuevamente por tu ayuda.
Responder Con Cita
  #4  
Antiguo 13-02-2008
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 22
ixMike Va por buen camino
Pero sigo sin saber, ¿después del 9 va un 0, un 1 o una A? ¿y después de una Z? ¿Va un 0, un 1 o una A?
Responder Con Cita
  #5  
Antiguo 13-02-2008
luxus luxus is offline
Miembro
 
Registrado: oct 2004
Posts: 134
Poder: 20
luxus Va por buen camino
Hola ixMike,

En respuesta a tu pregunta, después de un 9 irá un 0, incrementándo el número o letra del lado izquierdo. Por ejemplo, si tenemos 1234567890AAA9 el siguiente será 1234567890AAB0.

Si llegamos al caso de la combinación 1234567890AAZ9 el siguiente sería 1234567890ABA0, y así sucesivamente.

Espero que ahora me haya explicado mejor.

Gracias y un saludo
Responder Con Cita
  #6  
Antiguo 13-02-2008
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 22
ixMike Va por buen camino
ok, ya se entiende

Prueba con algo así:

Código Delphi [-]
var //variables globales
  codigo: array[1..14] of char;
//nota: así podrás usar la variable como un string.

procedure Incrementar(pos: integer);
begin
if (codigo[pos] in ['0'..'8']) or (codigo[pos] in ['A'..'Y']) then codigo[pos]:=Ord(codigo[pos]+1) else
if codigo[pos]='9' then
  begin
  codigo[pos]:='0';
  incrementar(pos-1);
  end
else if codigo[pos]='Z' then
  begin
  codigo[pos]:='A';
  incrementar(pos-1);
  end;
end;


Nótese que tú sólo tendrás que llamar a la función con el parámetro 14 (el último caracter). Lo del parámetro es para la recursividad, y así optimizar el código.

Espero que te sirva.



Salu2.


Edito: tenía un "bug" donde la fución Ord. Solucionado (gracias Delphius por probarlo).

Última edición por ixMike fecha: 15-02-2008 a las 20:18:54.
Responder Con Cita
  #7  
Antiguo 14-02-2008
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Me parece que esta mal como lo están planteando....y si el código termina en letra???

Me parece podría definirse un número de base 24, es decir la secuencia posibles valores para cualquier dígito vendría dada por:

01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ

pero aqui tenemos las siguientes variantes:

despues de 0 sigue A y despues de Z sigue 0
despues de Z sigue A y despues de 0 sigue 1

tendrías que escoger cuales van a ser las reglas a aplicar ya que como puedes ver solo es posible aplicar 2 a la vez
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #8  
Antiguo 14-02-2008
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 22
ixMike Va por buen camino
Yo creo que tal cual está planteado las letras son independientes de los números. Y así lo he planteado yo en mi código.

En otras palabras: las letras son siempre letras y los números siempre números.

Así, a A9 sigue B0 y a 3Z sigue 4A.

Al menos así lo he entendido, según la explicación.


Salu2.
Responder Con Cita
  #9  
Antiguo 14-02-2008
Avatar de PeterPunk
PeterPunk PeterPunk is offline
Miembro
 
Registrado: ene 2008
Ubicación: Vigo
Posts: 22
Poder: 0
PeterPunk Va por buen camino
Por curiosidad, ¿qué sigue a Z9?, ¿A0, AA0, 1A0? ¿otra distinta?
Responder Con Cita
  #10  
Antiguo 14-02-2008
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 22
ixMike Va por buen camino
Cita:
Empezado por PeterPunk Ver Mensaje
Por curiosidad, ¿qué sigue a Z9?, ¿A0, AA0, 1A0? ¿otra distinta?
yo diría que:

-como el código es de 14 dígitos, a 00000000000000Z9 sigue 000000000001A0.
-como el que has puesto es de sólo dos, pues un reset a A0 o se añade otro dígito, 1A0, o también AA0, ya que el dígito anterior no estaba...

de todas formas, en un código de 14 iniciado previamente de alguna forma no se creará tanta confución (claro, a no ser que sea 9Z9Z9Z9Z9Z9Z9Z )
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
Ordenar una table numericamente por un campo alfanumerico jose.mendez Tablas planas 2 31-12-2007 17:56:16
longitud de un campo alfanumerico dtomeysoto SQL 2 10-03-2007 20:08:55
Generacion de scripts AMO Oracle 2 10-10-2005 17:55:15
Generación de archivos dcu jplj Varios 2 26-04-2005 21:44:29


La franja horaria es GMT +2. Ahora son las 12:01:31.


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