![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
||||
|
||||
|
Abuelo, que tal una tabla de búsqueda para las preguntas y otra para las respuestas con una relacion de uno a varios, así por cada pregunta tienes x cantidad de respuestas y no tienen que ser solo cuatro, esto tiene la posibilidad de ir enriqueciendo las respuestas, porque tu programa me puede preguntar "como estás?", y yo le puedo responder, "aqui guapeando" y entonces el detectar que es una respuesta que no tiene y agregarla al arcenal de respuestas pocibles
![]() Claro que eso es solo una idea más, el objetivo es no limitar a solo cuatro respuestas por preguntas y que el programa se retroalimente de las conversaciones. Saludos
__________________
Lo importante no es llegar primero, sino saber llegar. Para que puedas llegar mejor lee la Guia de Estilo |
|
#2
|
|||
|
|||
|
Hola amigos y amigas.
Respecto al tema que me está preocupando tengo lo siguiente: unit PruebaBuena4; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Db, DBTables; type TForm1 = class(TForm) ListBox1: TListBox; Button1: TButton; DataSource1: TDataSource; Table1: TTable; EditPregunta: TEdit; procedure Button1Click(Sender: TObject); procedure EditPreguntaKeyPress(Sender: TObject; var Key: Char); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); begin Close; end; procedure TForm1.EditPreguntaKeyPress(Sender: TObject; var Key: Char); var respuesta : Integer; RespuestaCAD : String; begin If key=#13 then begin Table1.Open; If Table1.Locate('pregunta',EditPregunta.Text, [loCaseInsensitive]) then Randomize; respuesta := Random(5); Case respuesta of 1: RespuestaCAD := Table1.fieldByName('respuesta1').AsString; 2: RespuestaCAD := Table1.fieldByName('respuesta2').AsString; 3: RespuestaCAD := Table1.fieldByName('respuesta3').AsString; 4: RespuestaCAD := Table1.fieldByName('respuesta4').AsString; 5: RespuestaCAD := Table1.fieldByName('respuesta5').AsString; end; Table1.Close; begin ListBox1.Items.Add(EditPregunta.Text); ListBox1.Items.Add(RespuestaCAD); EditPregunta.Text :=''; end; end; end; end. Me aparece un problema y es que al introducir una frase o palabra, por ejemplo 'hola' a veces me contesta bien con una de las 5 respuestas posibles, pero a veces falla y no contesta nada. Lo tengo programado para que en el ListBox aparezca la frase del usuario y la respuesta, con lo cual cuando falla, solo aparece la frase del usuario y una línea en blanco. Podeís decirme que estoy haciendo mal.? Gracias. Manuel Reixach |
|
#3
|
||||
|
||||
|
existe un begin mal puesto...a parte el ramdom de 5 puede darte valor 0 y no lo tienes contemplado...mejor ponerlo a 4
... el procedure quedaría asi.
|
|
#4
|
|||
|
|||
|
Hola Tony.
Gracias por tu ayuda. De todas formas, he modificado el procedure como tú me indicas y sigue pasando lo mismo, hay alguna frase que no me la contesta. Supongo que debe haber algo más que esta mal. Saludos Manuel |
|
#5
|
||||
|
||||
|
que raro, lo veo un poco imposible si haces un random de 4 solo puede salir 0,1,2,3,4 con lo que tienes acotada las posibilidades y RespuestaCAD siempre se rellena.... como no sea que en la tabla tengas alguna de las 5 respuestas vacia a alguna pregunta
..... |
|
#6
|
|||
|
|||
|
Hola otra vez Tony.
Parece ser que he encontrado el fallo. En la tabla he tenido que renombrar los campos de respuesta, que estaban de respuesta1 a respuesta5, y poner de respuesta0 a respuesta4. Y en el case, que estaba todo de 1 a 5, poner de 0 a 4. Ahora lo he probado varias veces y no ha fallado ninguna. Saludos. Manuel |
|
#7
|
||||
|
||||
|
Cita:
Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| consulta a un query en vez de a una tabla | eldiegofg | SQL | 10 | 19-09-2007 12:46:39 |
| Consulta Estado de una Tabla SQL | Alejandro73 | SQL | 2 | 24-06-2007 00:03:00 |
| Crear tabla en una BD en Server A desde consulta en tabla B en server B | joaquinalberto | MySQL | 1 | 18-05-2007 10:39:27 |
| Grabar Consulta en Tabla | don malo | Varios | 1 | 12-03-2007 23:45:59 |
| Actualizar una tabla con una consulta de otra tabla | JODELSA | SQL | 2 | 14-09-2006 04:07:01 |
|