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
|
|||
|
|||
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. |
#2
|
||||
|
||||
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. |
#3
|
|||
|
|||
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. |
#4
|
||||
|
||||
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?
|
#5
|
|||
|
|||
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 |
#6
|
||||
|
||||
ok, ya se entiende
Prueba con algo así:
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. |
#7
|
||||
|
||||
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|| |
#8
|
||||
|
||||
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. |
#9
|
||||
|
||||
Por curiosidad, ¿qué sigue a Z9?, ¿A0, AA0, 1A0? ¿otra distinta?
|
#10
|
||||
|
||||
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 ) |
#11
|
||||
|
||||
Disculpen que meta más leña al fuego... pero hay que preguntarlo ahora:
¿Se contempla la Ñ? Esto lo digo porque muchas veces cuando hablan de letras, y más cuando involucra al abecedario entero, se olvidan que el castellaño tiene una letra más. Saludos, |
#12
|
||||
|
||||
Mi código no comptempla la Ñ
|
#13
|
||||
|
||||
Cita:
1. Leer caracter N-ésimo: 2. Evaluar caracter: 2.1. Si es numero: 2.1.1. incrementar valor según módulo 10. 2.1.2. Si caracter es ahora 9: 2.1.3. Volver a paso 1 siendo el caracter (N-1)-ésimo. 2.2. Si es letra: 2.2.1. incrementar valor caracter. 2.2.2. Si caracter es ahora Z: 2.2.3. Volver a paso 1 siendo el caracter (N-1)-ésimo. ¿Voy bien? Ahora mi pregunta es ¿que hacer cuando se llega al final de la cadena y si el valor es 9 o Z? De cualquier modo... no está bien dicho la cosa. Pues precisamente a eso me refiero. Tanto tu como Azid no han contemplado la Ñ. ¿La usamos? luxus, debes definir concretamente como son las reglas para que el algoritmo funcione como debe. Saludos, |
#14
|
||||
|
||||
Si queremos que sea portable, no se debe contemplar, muy a pesar de cervantes
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#15
|
||||
|
||||
Ya se me van a quemar vivo pero para mi (y para muchos) la Ñ no es letra, como tampoco lo es "Ch" y "Ll".
__________________
AKA "El animalito" ||Cordobés a mucha honra|| |
#16
|
||||
|
||||
Cita:
En fin, no me hagas caso.... hoy he estado un poco cabrón Es muy cierto que la Ñ se la pasan de largo, y es por ese motivo que yo la incluyo. Pero aqui, para "práctica" podemos obviarla. Vale. Quería preguntarte... como lo estás entendiendo a esto? Pues mo me hice lio EDITO: ¿ Y luxus va a dar presencia, o explicar mejor el asunto? Porque hace 4 horas estuvo presente y si al menos hubiera dicho una mínima explicación hubiera sido mejor. Porque al modo en lo veo, pareciera que le estamos haciendo la tarea. Saludos Última edición por Delphius fecha: 15-02-2008 a las 05:10:13. |
#17
|
||||
|
||||
No es que pareciera... es que lo es
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#18
|
||||
|
||||
uy, uy.. discusión lingüística... ¡me apunto!
Bueno, lo primero, es que uno no puede decir "esto me parece... esto no me parece...". Hay definiciones para cada cosa. Entre esas cosas, la de letra. Si leéis el enlace (primera acepción) ya queda indiscutible que la ñ es una letra. Pero, ¿qué pasa con "ch" y "ll"? Según la segunda acepción, tradicionalmente también son letras. Pero claro, tradicionalmente... ¿y ahora? Desde luego, tienen su propia pronunciación, pero claro, requieren de más de un signo gráfico para representarlas, es decir, más de una letra. Che y elle son cada una un fonema con dos letras. ¿Por qué no? Ya se prodía mirar más allá, con esto del Unicode y los CodePoint, pero a fin de cuentas, eso no son más que "artimañas" para simplificar (informáticamente hablando) las cosas. Y para no desvirtualizar el hilo... ¡luxus, ¿dónde c0~@ te has metido?! Que nos tienes en intríngulis. ¿Metemos la eñe o no? ¿Los números se mezclan con las letras o no?... Salu2. |
#19
|
||||
|
||||
Bueno... creo que no hace falta nombrar lo que sabemos... si luxus no pone de su parte... pues... no creo que le encontremos solución, por ahora yo voy a seguir adivinando:
NOTA: comienzo a contar de derecha a izquierda. Doy por supuesto que los carateres son dependientes exclusivamente del anterior. Y que debe incrementar su valor independiente de si es un número o una letra. 1. ¿Que sucede cuando el primer caracter es un 9? 1.1. Se convertiría en un 0 (cero). bien... y ¿ahora? 1.2. ...el caracter a su izquierda debe "incrementarse". Perfecto, y si es ¿9? 2. ¿Que sucede cuando el primer caracter es Z? 2.1. Se convertiría en A. ¿y ahora? 2.2. ... el caracter a su izquierda debe "incrementarse". Perfecto, y si es ¿Z? Estas dos situaciones, me llevan a: 3. ¿Que sucede cuando el último caracter es un 9? 3.1. Lo incrementamos. Perfecto... se obtuvo un 0 (cero). ¿Que hacemos? 3.1.1. Reemplazamos ese cero por A, dando inicio a las letras. O bien, 3.1.2. No hacemos nada. 4. ¿Que sucede cuando el último caracter es Z? 4.1. Lo incrementamos. Perfecto... se obtuvo A. ¿Que hacemos? 4.1.1. No hacemos nada. A lo que voy es que la regla, necesariamente debe ser posicional y no sólo del caracter. Voy a pedir que luxus defina concretamente como vienen las reglas. ¡Que hable! ¿O es que este hilo deberá quedar sin solución? Saludos, Última edición por Delphius fecha: 15-02-2008 a las 18:53:47. |
#20
|
||||
|
||||
a ver si entendi lo que explicas, necesitas recursividad, algo como esto:
declara unas variables globales:
luego este es el codigo, le pasa la cadena como parametro al procedimiento incrementar y te devolvera una cadena incrementada segun la regla de la A-Z y 0-9
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
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 |
|