Página 1 de 1

Dica aleatória para gerar string unica.

Enviado: 13 Mai 2023 18:28
por rochinha
Amiguinhos,

Uma segunda função que gera uma string com montagem a partir de dois conjuntos simples. Util para montar uma senha de acesso específica que não se repete:

Código: Selecionar todos

function scrumble2()
   cPrimeiraString := "0123456789"
   cSegundaString  := "ABCDEFGHIJ"
   cTerceiraString := ""
   DO WHILE len(cPrimeiraString) > 0 // Vou diminuir o tamanho a cada passagem
       // A cada passada o Random vai diminuindo o range de atuacao
       cQualDigito1 := subStr( cPrimeiraString, Random( len(cPrimeiraString) ), 1 )
       cQualDigito2 := subStr( cSegundaString , Random( len(cSegundaString) ) , 1 )

       cPrimeiraString := StrTran( cPrimeiraString, cQualDigito1, "" )
       cSegundaString  := StrTran( cSegundaString , cQualDigito2, "" )

       cTerceiraString := cTerceiraString + cQualDigito1 + cQualDigito2 + "|"

   ENDDO
   return cTerceiraString
Uso:
FUNCTION MAIN()
? "scrumble2()", scrumble2()
RETURN .T.

Dica aleatória para gerar string unica.

Enviado: 19 Jul 2023 16:01
por clodoaldomonteiro
Ótima dica, Rochinha e aproveitando ela, fiz um ajuste para informar por parâmetro o tamanho da Senha a ser retornada.

Código: Selecionar todos

   /////////////////////////////////////////////////////////////////////////////
   //Alterando Dica do Rochinha
   // n = Tamanho da string senha
function scrumble3( n )
   Local i, r := '', cString := "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" //pode incluir qq caractere permitido em senhas.

   For i := 1 To n
       r += SubStr( cString, HB_RandomInt( Len( cString ) ), 1 )
   Next
   
   return r
Abraços

Dica aleatória para gerar string unica.

Enviado: 19 Jul 2023 17:39
por Fernando queiroz

Código: Selecionar todos

FUNCTION create_Txid(  ) 
Local cRetorno:="";
    , nCont;
    , equivalente:= {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',;
                    '0','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y',;
                    'Z','0','1','2','3','4','5','6','7','8','9'}

    For nCont:=1 to 32
        cRetorno += equivalente[HB_RandomInt(1, 62)]
    next

return cRetorno
fiz assim , ficou legal , consigo gerar o TXID do PIX com isso, gera uma senha de 32 caracteres