Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   numeración alfanumérica y aleatoria (https://www.clubdelphi.com/foros/showthread.php?t=68311)

Aprendiendo 07-06-2010 19:28:45

numeración alfanumérica y aleatoria
 
Hola a tod@s,

Necesitaría una función la cual me devolviera una numeración alfanumérica pero aleatoria.

Esperando una pronta respuesta, reciban un cordial saludo...
:):cool::)

Casimiro Notevi 07-06-2010 20:00:26

Si es aleatoria entonces será una cadena de texto, no?

Código Delphi [-]
function DameClave( iLongitud:integer; iTipo:integer=1 ) : string;
const
  cValoresNum      = '0123456789';
  cValoresAlpha    = 'abcdefghijklmnopqrstuvwxyz';
  cValoresAlphaNum = cValoresNum + cValoresAlpha;
var
  iX : integer;
begin
  Result := '';
  //
  Randomize;  
  //
  case iTipo of
    0 : for iX := 1 to iLongitud do
          Result := Result + cValoresNum[ Random(length(cValoresNum))+1 ];
    1 : for iX := 1 to iLongitud do
          Result := Result + cValoresAlpha[ Random(length(cValoresAlpha))+1 ];
    2 : for iX := 1 to iLongitud do
          Result := Result + cValoresAlphaNum[ Random(length(cValoresAlphaNum))+1 ];
  end;
end;

Y para llamarla está claro, le dices la longitud y el tipo.

Aprendiendo 07-06-2010 20:11:01

Gracias por tu pronta respuesta,

Voy a probar y te comento.

Un saludo...
:):cool::)

Aprendiendo 09-06-2010 19:25:11

Probé la función y funciona perfectamente.

Gracias por tu aportación.
:):cool::)

Antoniov 17-08-2011 00:36:06

Cadena Aleatoria
 
Para generar una clave de forma aleatoria podemos usar esta esta función sencilla

Para hacerla algo más interesante, he puesto distintas probabilidades para mayúsculas, minúsculas y números.

Código Delphi [-]
function CadenaAleatoria (Largo:integer):string;
var i:integer;
begin
  randomize;
  result := '';
  for i := 0 to largo-1 do
    begin
    case Random (7) of
      0:       result := result + Chr (ord ('0')+ random (1 + ord('9')-ord('0')) );
      1,2:     result := result + Chr (ord ('A')+ random (1 + ord('Z')-ord('A')) );
      3,4,5,6: result := result + Chr (ord ('a')+ random (1 + ord('z')-ord('a')) );
    end;
    end;
end;

juanlaplata 06-09-2011 19:34:25

exelentes aportes, me sirvieron mucho.
Gracias


La franja horaria es GMT +2. Ahora son las 00:41: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