Array of String
Olá amigos, eu estrou tentando randomizar um array de strings, exemplo:
Edit1.Text := RandomFrom([´0´,´1´,´2´,´3´,´4´,´5´,´6´,´7´,´8´,´9´]);
O caso é que também quero randomizar letras (strings) mas o código ficaria extenso. Para isso pensei em usar variáveis que deveriam conter array of string. Meu código:
procedure TForm1.Button1Click(Sender: TObject);
var
cArray: array of string;
begin
Edit1.Clear;
cArray := [´0´,´1´,´2´,´3´,´4´,´5´,´6´,´7´,´8´,´9´];
Edit1.Text := Edit1.Text + RandomFrom(cArray);
end;
O delphi me dá uma mensagem: ´Incopatible types: ´set´ and ´dynamic array´´
Onde está o meu erro??? Sou novo em programação avancada e preciso de ajuda!!!
Edit1.Text := RandomFrom([´0´,´1´,´2´,´3´,´4´,´5´,´6´,´7´,´8´,´9´]);
O caso é que também quero randomizar letras (strings) mas o código ficaria extenso. Para isso pensei em usar variáveis que deveriam conter array of string. Meu código:
procedure TForm1.Button1Click(Sender: TObject);
var
cArray: array of string;
begin
Edit1.Clear;
cArray := [´0´,´1´,´2´,´3´,´4´,´5´,´6´,´7´,´8´,´9´];
Edit1.Text := Edit1.Text + RandomFrom(cArray);
end;
O delphi me dá uma mensagem: ´Incopatible types: ´set´ and ´dynamic array´´
Onde está o meu erro??? Sou novo em programação avancada e preciso de ajuda!!!
Marcosrocha
Curtidas 0
Respostas
Jc_analista
21/12/2004
Não sei se é isso q vc quer mas tente assim:
var vetor: array [0..2] of string = (´A´,´B´,´C´); cont,i:integer; begin edit1.text:=vetor[random(2)]; // vai trazer só uma letra cont:=random(100); for i:=0 to cont do edit1.text:=vetor[random(2)]; // vai trazer várias letras end;
GOSTEI 0
Marcosrocha
21/12/2004
Mensagem de erro:
[Error] UMain.pas(39): Cannot initialize local variables
[Error] UMain.pas(39): Cannot initialize local variables
GOSTEI 0
Jc_analista
21/12/2004
coloque o vetor como uma variavel global;
var
form1: Tform1;
// abaixo da linha que e declarado o formulario
vetor: array [0..2] of string = (´A´,´B´,´C´);
var
form1: Tform1;
// abaixo da linha que e declarado o formulario
vetor: array [0..2] of string = (´A´,´B´,´C´);
GOSTEI 0
Massuda
21/12/2004
[Error] UMain.pas(39): Cannot initialize local variables
Imaginando que você não precise alterar o conteúdo do array, você pode criar uma constante:
const vetor: array [0..2] of string = (´A´,´B´,´C´); var cont,i:integer;
GOSTEI 0
Marcosrocha
21/12/2004
E se eu tivesse duas variáveis que eu queira usar???
Uma ´vetor´ que me traz números (strings) e outra ´letras´ (strings) que me traz letas minúsculas para randomizar e gerar uma senha, por exemplo: 64a8sd3e
Uma ´vetor´ que me traz números (strings) e outra ´letras´ (strings) que me traz letas minúsculas para randomizar e gerar uma senha, por exemplo: 64a8sd3e
GOSTEI 0
Marcosrocha
21/12/2004
A variável como constante funcionou mas eu gostaria de separar as variáveis que guardam números das que guardam letras!!! Eu acho que fica mais organizado!!! Isso é viável???
GOSTEI 0
Massuda
21/12/2004
E se eu tivesse duas variáveis que eu queira usar???
Uma ´vetor´ que me traz números (strings) e outra ´letras´ (strings) [...]
Não sei se entendi, mas você pode fazer...
const letras: array [0..2] of string = (´A´,´B´,´C´); numeros: array [0..4] of string = (´5´,´9´,´0´, ´3´, ´7´);
GOSTEI 0
Marcosrocha
21/12/2004
Não sei se entendi, mas você pode fazer...
const letras: array [0..2] of string = (´A´,´B´,´C´); numeros: array [0..4] of string = (´5´,´9´,´0´, ´3´, ´7´);
É assim mesmo mas e para Randomizar essas duas variáveis???
Exemplo com uma: Edit1.Text := letras[Random(2)];
Eu queria fazer um jeito de a aplicação pegar uma letra ou um número aleatóriamente. não sendo necessário ser em ordem! Pode ser duas letras e um número ou dois números e uma letra ou três letras ou três números... Queria fazer randomizar as 2 variáveis!!!
GOSTEI 0
Jc_analista
21/12/2004
cont:=random(100);
for i:=0 to cont do
begin
if random(1) = 0 then
edit1.text:=edit1.text+letras[random(2)]
else
edit1.text:=edit1.text+numeros[random(2)];
/// Vc vai ter um random que vai dar 0 ou 1 se der 0 vc pega letras ou se der 1 vc pega numeros.
Entendeu.
for i:=0 to cont do
begin
if random(1) = 0 then
edit1.text:=edit1.text+letras[random(2)]
else
edit1.text:=edit1.text+numeros[random(2)];
/// Vc vai ter um random que vai dar 0 ou 1 se der 0 vc pega letras ou se der 1 vc pega numeros.
Entendeu.
GOSTEI 0
Marcosrocha
21/12/2004
Aham, entendi jc_analista. Eu vou fazer uns testes e qualquer coisa eu posto de novo!!!
GOSTEI 0
Marcosrocha
21/12/2004
Aham, entendi jc_analista. Eu vou fazer uns testes e qualquer coisa eu posto de novo!!!
Funcionou Gente, era isso mesmo que eu queria fazer... Obrigado!!!
GOSTEI 0