Autor Beitrag
Fluff2k3
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Mo 23.06.03 16:46 
Hi,

ich habe eine Paradox7 tabelle und möchte die einzelnen Daten per Zufall auslesen lassen!Es sind über 300 Fragen und die sollen halt per Zufall gestellt werden, wobei sie sich nicht wiederholen sollen!

Wie kann ich das realisieren?

Danke schonmal, Bye Fluff
grayfox
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 800

win98, winXP
D4 Standard; D6 Personal
BeitragVerfasst: Mo 23.06.03 17:45 
hallo fluff!

ich würd dein problem so lösen:

- mit random eine zufallszahl erzeugen
- den datensatzcursor mit MoveBy(zufallszahl) verschieben
- und anschliessend mit First wieder an den anfang der tabelle

zb so:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TForm1.FormCreate(Sender: TObject); 
begin 
  Randomize; 
end; 

procedure TForm1.Button1Click(Sender: TObject); 
begin 
  Table1.First; 
  Table1.MoveBy(Random(Table1.RecordCount)); 
end;




mfg, stefan
Fluff2k3 Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Mo 23.06.03 18:25 
Danke schonmal!

Der Zufall geht jetzt.
Aber da kommen manchmal die gleichen Fragen genau hintereinander!
Wie kann ich das verhindern?

Danke schonmal, Fluff
grayfox
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 800

win98, winXP
D4 Standard; D6 Personal
BeitragVerfasst: Mo 23.06.03 18:34 
hallo fluff!

du kannst natürlich die gezogenen zahlen in eine tabelle eintragen und vor auswahl der frage immer vergleichen, ob die zahl schon mal dran war.
wenn ja, dann neue zahl erstellen lassen, usw
beim programmieren darf man auch fantasie beweisen :)

mfg, stefan
MKehrer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 114

NT, 2000
D6
BeitragVerfasst: Mi 25.06.03 11:31 
Ich würde es so lösen

1) Erstelle ein Array [0..DataSet.count-1] of Integer
2) schreibe die Zahlen 0 ..DataSet.count der Reihe nach in das Array
3) Vertausche mehrmals den Inhalt von 2 zufällig ausgewählten Feldern des Array (vielleicht 1e6 mal)
4) Dann hast Du eine zufällig angeordnete Zahl Liste der Zahlen 0..DataSet.count-1 ohne Wiederholung und Du kannst der Reihe nach die Datensätze lesen

oder so

1) Erstelle eine Liste von Integer-Zahlen 0..DataSet.count-1
2) Wähle zufällig eine Zahl aus der Liste 0..DataSet-1
3) Entferne das ausgewählte Listen-Element
4) Dann wieder Nr.2) mit 0..DataSet-2
5) Wenn DataSet.count=0 ist gehe wieder zu Punkt 1

Manfred

_________________
Manfred
Was Du siehst ist in Dir (Smile)