Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-05-2004
Avatar de DarkByte
DarkByte DarkByte is offline
Miembro
 
Registrado: sep 2003
Ubicación: Desconocido
Posts: 1.322
Poder: 22
DarkByte Va por buen camino
Escoger una palabra de una lista aleatoriamente

Saludos, ruego su ayuda una vez más.

¿Cómo puedo escoger una palabra (bueno, una string) aleatoriamente de una lista de strings?. Me parece que no necesita el caso más explicacion... debe ser algo sencillo... pero no lo he encontrado en los foros.

Gracias, simplemente, por leerme.
__________________
:)
Responder Con Cita
  #2  
Antiguo 12-05-2004
Avatar de Paoti
Paoti Paoti is offline
Miembro
 
Registrado: may 2003
Ubicación: Monterrey. N.L., México
Posts: 612
Poder: 21
Paoti Va por buen camino
Hola buen dia!!!!!



mirate en la ayuda la funcion Random();


esta te gebera un numero al azar entre 0 y 1, ese valor lo multiplicas por el valor maximo de la lista de string, y devuelves la parte entera y listo, el valor obtenido sera un numero aleatorio de una elemnto de tu lista.


nota. debes usar la palabara randomize antes....




espero te sirva!



Saludos a todos
Responder Con Cita
  #3  
Antiguo 12-05-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Paoti
esta te gebera un numero al azar entre 0 y 1, ese valor lo multiplicas por el valor maximo de la lista de string, y devuelves la parte entera
De hecho Random puede recibir un argumento entero en cuyo caso regresara un número entero entre 0 y argumento - 1:

Código Delphi [-]
Assert(Random(StringList.Count) in [0..StringList.Count - 1]);

// Saludos
Responder Con Cita
  #4  
Antiguo 12-05-2004
Avatar de Paoti
Paoti Paoti is offline
Miembro
 
Registrado: may 2003
Ubicación: Monterrey. N.L., México
Posts: 612
Poder: 21
Paoti Va por buen camino
voila, lo habia olvidado!!!!




esta mas sencillo!!!



nos vemos
Responder Con Cita
  #5  
Antiguo 12-05-2004
Avatar de DarkByte
DarkByte DarkByte is offline
Miembro
 
Registrado: sep 2003
Ubicación: Desconocido
Posts: 1.322
Poder: 22
DarkByte Va por buen camino
Gracias a ambos, probaré y si puedo os contesto antes del viernes (no me dejan "enchufarme" entre semana).
__________________
:)
Responder Con Cita
  #6  
Antiguo 14-05-2004
Avatar de DarkByte
DarkByte DarkByte is offline
Miembro
 
Registrado: sep 2003
Ubicación: Desconocido
Posts: 1.322
Poder: 22
DarkByte Va por buen camino
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
StringList:TStrings;
UnaString:String;
begin
StringList := TStrings.Create;
try
StringList.Add('hola');
StringList.Add('Pepe');
StringList.Add('jeje');
StringList.Add('jojo');
finally
Assert(Random(StringList.Count) in [0..StringList.Count - 1]);
end;
end;
¿?, no se como obtener el número aleatorio.
Responder Con Cita
  #7  
Antiguo 14-05-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
prueba con

Código Delphi [-]
var
  MyRandom: integer;
begin
  MyRandom := Random(StringList.Count - 1);
Responder Con Cita
  #8  
Antiguo 14-05-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
DarkByte

Assert es un procedimiento especial de Delphi que se utiliza más que nada para cuando está uno haciendo pruebas con una aplicación. Recibe un parámetro booleano y opcionalmente una cadena de texto. Si el primer parámetro es false Assert genera una excepción indicando la unidad y línea de código en que se produjo.

A diferencia de otras excepciones Assert se utiliza como una herramienta de control del programador. El programador, en un punto dado del código puede pensar que cierta condición debe ser cierta en cualquier circunstancia basado en la forma en que diseñó la aplicación y entonces asegura que tal condición ha de cumplirse (Assert). Si en el transcurso de las pruebas resulta que su afirmación era falsa, saltará la excepción indicándole el punto exacto de manera que le sea fácil revisar el código y hacer las modificaciones necesarias.

Dicho en otras palabras, utilizar Assert es como decir:

"He diseñado el código de tal forma que aseguro que X condición será cierta en este punto y me puedo basar en ello para el resto del código"

Si la aserción falla querrá decir que el código no se ajusta al diseño que el pensaba y tendrá que corregirlo.

Por ello, en el contexto de la respuesta de Paoti, cuando puse

Código Delphi [-]
Assert(Random(StringList.Count) in [0..StringList.Count - 1]);

estaba simplemente utilizando la semántica de Assert para asegurar que el valor de retorno de Random sería un número entero entre 0 y StringList.Count - 1.

Esta es una explicación un poco larga para explicar porque puse Assert pero quería aprovechar para que conocieras algo nuevo de lenguaje.

// Saludos
Responder Con Cita
  #9  
Antiguo 15-05-2004
Avatar de DarkByte
DarkByte DarkByte is offline
Miembro
 
Registrado: sep 2003
Ubicación: Desconocido
Posts: 1.322
Poder: 22
DarkByte Va por buen camino
Gracias a ambos, probaré a ver... y ya os cuento.

Muchas gracias Roman por hacerme aprender algo más, nunca se sabe lo suficiente
__________________
:)
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 16:04:31.


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
Copyright 1996-2007 Club Delphi