Entwickler-Ecke
Datenbanken - Zufallszahlen aussparen
Nomis - Sa 02.11.02 23:35
Titel: Zufallszahlen aussparen
Bin gerade dabei einen Vokabeltrainer zu basteln und habe dabei eine BDE Tabelle. Dort gibt es unter anderem ein Feld "ID" und "okay".
Mit
zahl := random(127)+1;
und
Quelltext
1:
| vokabel := table1.Locate('ID', zahl, [loCaseInsensitive]); |
lasse ich mir per Zufall die Vokabeln anzeigen.
Nun will ich aber gerne nur die lernen die ich nicht kann und lasse mir in Okay bei richtigem Vergleich eine 1 Schreiben.
Jetzt hänge ich ein bisschen da ich bei random die Zahlen aussparen möchte, (ID) bei denen bei "Okay" eine 1 Steht hat da jemand eine Idee
Danke schon mal im Vorraus
LCS - So 03.11.02 09:21
Hi
wenn du den Datensatz gelesen hast, kannst du feststellen ob im Feld "Okay" eine 1 und wenn ja musst du das Ganze wiederholen:
Quelltext
1: 2: 3: 4:
| repeat Zahl := random(127) + 1; table1.Locate('ID', zahl, [loCaseInsensitive]); until table1.FieldByName('okay').AsInteger = 0; |
Gruss Lothar
Nomis - So 03.11.02 12:55
Danke dir manchmal kommt man eben nicht auf die einfachsten sachen
Cashels - So 03.11.02 13:14
| LCS hat folgendes geschrieben: |
| wenn du den Datensatz gelesen hast, kannst du feststellen ob im Feld "Okay" eine 1 und wenn ja musst du das Ganze wiederholen: |
Nana, die Lösung find ich aber nicht so elegant. Stell dir ne Tabelle vor mit 1000 Einträgen wovon 999 als OK gekennzeichnet sind. Hats du da schon mal ausgerechnet Wie oft du deine Schleife durchläufst bevor du diesen letzten Eintrag findest :lol:
Ich schlag deshalb lieber vor, erst mit einer SQL Abfrage die gesuchten Datensätze zu filtern, und nur auf dieser Ergebnismenge einen Zufallsdatensatz finden... Nur kannst du dann natürlich nicht mehr über Locate nach deinem ID Feld suchen, sondern könntest stattdessen mit RecordCound und RecNo arbeiten um deinen DB-Cursor zu positionieren.
Gruss
Tom
LCS - So 03.11.02 13:26
Hi
| Cashels hat folgendes geschrieben: |
Nana, die Lösung find ich aber nicht so elegant. Stell dir ne Tabelle vor mit 1000 Einträgen wovon 999 als OK gekennzeichnet sind. Hats du da schon mal ausgerechnet Wie oft du deine Schleife durchläufst bevor du diesen letzten Eintrag findest
|
Da hast du vollkommen Recht. Ich würde das auch nicht so machen. :wink: Aber das war ja auch gar nicht seine Frage. Da wäre er bestimmt noch selber draufgekommen.
Gruss Lothar
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!