Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marvi

número aleatório

Recommended Posts

Olá pessoal,

 

Estou realizando um formulário para controle de estoque... ele vai inserir um produto, mas terá que ter o código da nota... um código aleatório e que não pode se repetir para poder cadastrar o produto...

 

Pesquisando encontrei esse código que funciona bem... alguém sabe me informar se ele poderá gerar números repetidos? Pois seria bom se não se repetisse.

 

<%
' Em primeiro lugar vamos criar uma função chamada GerarChave()
' esta função ira criar e definir um array  alfanumérico de
' 0 a 9
Function GerarChave(valores)
Dim chr_Array(9)
 chr_array(0)  = "0"
 chr_array(1) = "1"
 chr_array(2) = "2"
 chr_array(3) = "3"
 chr_array(4) = "4"
 chr_array(5) = "5"
 chr_array(6) = "6"
 chr_array(7) = "7"
 chr_array(8) = "8"
 chr_array(9) = "9"

' Agora vamos fazer um Randomize em todo Array

Randomize

' Ok, feito a bagunça no Array vamos preparar
' para gerar a senha
' Enquanto a chave tiver a quantidade de caracteres
' menor que 10 o loop continua gerando ela.

do while len(chave) < 10
num = chr_array(Int(9 * Rnd ))
chave = chave + num
loop

' Chave gerada com sucesso então definimos a
' função GerarChave
GerarChave = chave
End Function
' Finalizando a função
' Mostrando a senha no browser.
' Obs: O número dez significa o tamanho da senha em
' carateres que será criado
response.write  "Senha gerada: " & GerarChave(10) & vbcrlf
%>

Obrigado!

 

Marcelo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um belo número "aleatório" que nunca se repetirá será a combinação da data atual, com horas, minutos e segundos junto com o ID do produto. Simples, rápido e funcional.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tive pensando...

 

Eu irei pegar esse código de número aleatório abaixo gerar o numero e depois fazer uma consulta no banco para ver se existe, se não existir eu exibo no formulário, pode ser assim? E se caso exista eu faço uma soma com + 1

 

Tipo:

 

<%
' Em primeiro lugar vamos criar uma função chamada GerarChave()
' esta função ira criar e definir um array  alfanumérico de
' 0 a 9
Function GerarChave(valores)
Dim chr_Array(9)
chr_array(0)  = "0"
chr_array(1) = "1"
chr_array(2) = "2"
chr_array(3) = "3"
chr_array(4) = "4"
chr_array(5) = "5"
chr_array(6) = "6"
chr_array(7) = "7"
chr_array(8) = "8"
chr_array(9) = "9"

' Agora vamos fazer um Randomize em todo Array

Randomize

' Ok, feito a bagunça no Array vamos preparar
' para gerar a senha
' Enquanto a chave tiver a quantidade de caracteres
' menor que 10 o loop continua gerando ela.

do while len(chave) < 10
num = chr_array(Int(9 * Rnd ))
chave = chave + num
loop

' Chave gerada com sucesso então definimos a
' função GerarChave
GerarChave = chave
End Function
' Finalizando a função
' Mostrando a senha no browser.
' Obs: O número dez significa o tamanho da senha em
' carateres que será criado

sql="select top 1 * from tabela where codigo = "&GerarChave(10) &""

set rs=conn.execute(sql)

if rs.eof then

GerarChave(10)  'conserva

else

GerarChave(10) +1  ou  rs("id")+GerarChave(10)

end if

response.write  "Senha gerada: " & GerarChave(10) & vbcrlf
%>

O que acha??

Compartilhar este post


Link para o post
Compartilhar em outros sites

o melhor mesmo é usar a data mas se for mesmo usar numeros aleatorios se repetir sorteie denovo e nao apenas some com 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

números aleatórios e sem repetição

 

Function GerarN(ByVal Qtd, ByVal Min, ByVal Max)
Dim Vetor()
Redim Vetor(Qtd)
Randomize
For i = 0 To Qtd
N = Int(Min+(Rnd*(Max-Min)))
Tem = False
For y = 0 To Qtd
If Vetor(y) = N Then
Tem = True
Exit For
End If
Next
If Not Tem Then
Vetor(i) = N
Else
i = i - 1
End If
Next
GerarN = Vetor
End Function

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desisto,

 

Estou procurando lá, mas não acho... está com quem nome?

nao sei, nao enontrei tb :)

 

é essa aqui

Function chave_aleatoria(nQuant,ref)
dim Cont,sRand
	For Cont = 1 to nQuant
		Randomize
		If (Int(rnd*10) Mod 2 = 0) Then
			sRand = sRand + Chr(rnd * 25 + 97)
		Else 
			sRand = sRand + Cstr(Int(rnd * 10))
		End If
	Next
chave_aleatoria = sRand & ref
End Function

chave_aleatoria(total de carateres,referencia)

eu uso assim

chave_aleatoria(20,data)

data é uma variavel com a data corrente inclusive segundos, limpa sem barras nem ponto, tipo 20/12/2008 10:30:00

 

é pequena e impossivel de repetir

você tb pode usar assim:

chave_aleatoria(20,data&id)

 

20 numeros aleatorios e com a data corrente, nao adianta dizer que repete pq é impossivel

nem se o site tiver 100 zilhoes de cadastros ao mesmo tempo

 

 

qq duvida com a funcao avisa

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desisto,

 

Seu codigo não imprime nada...

 

<%Function chave_aleatoria(nQuant,ref)
dim Cont,sRand
	For Cont = 1 to nQuant
		Randomize
		If (Int(rnd*10) Mod 2 = 0) Then
			sRand = sRand + Chr(rnd * 25 + 97)
		Else 
			sRand = sRand + Cstr(Int(rnd * 10))
		End If
	Next
chave_aleatoria = sRand & ref
response.write("chave_aleatoria")
End Function

%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Xanburzum,

 

Tentei usar o seu também, mas onde sai o resultados dos numeros aleatórios? tentei imprimir o N e não saiu... o GerarN... pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

você precisa chamar a function

call chave_aleatoria(15,8)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.