Könnte jemand helfen, Suche nach Einmalig zufällig generierte Nummer. Momentan haben 4 Pubs, wenn Daten mehr als 4 Pubs haben, müssen die Pubs nach dem Zufallsprinzip ausgewählt und der Wert in die Pub1 Pub2 Pub3 und Pub4 Felder gesetzt werden. Lösung kann nicht gefunden werden, indem FoxPro verwendet.FoxPro Einmalige Zufallszahl
SELE A
USE TEST
REPL PUB1 WITH "" ALL
REPL PUB2 WITH "" ALL
REPL PUB3 WITH "" ALL
REPL PUB4 WITH "" ALL
REPL RANDOM1 WITH "" ALL
REPL RANDOM2 WITH "" ALL
REPL RANDOM3 WITH "" ALL
REPL RANDOM4 WITH "" ALL
REPL RANDOMLOG WITH "" ALL
SELE B
USE WHATPUB
SELE A
GO TOP
DO WHILE !EOF()
cBRANCH=BRANCH
SELE B
SET FILTER TO BRANCH=cBRANCH
COUN TO nBRANCHQTY
IF nBRANCHQTY<=4
FOR loop=1 TO nBRANCHQTY
SELE B
LOCA FOR loop=FT_URN
IF FOUND()
cPUBID=PUBID
SELE A
cFLD1="PUB"+LTRIM(STR(loop))
REPL (cFLD1) WITH cPUBID
ENDIF
NEXT loop
ELSE
SELE A
FOR loop=1 TO 4
SELE A
DO WHILE nRANDOMPUB>nBRANCHQTY
nRANDOMPUB=INT(RAND()*10)+1
ENDDO
SELE B
LOCATE FOR nRANDOMPUB=FT_URN
IF FOUND()
cPUBID=PUBID
SELE A
cFLD1="PUB"+LTRIM(STR(loop))
cFLD2="RANDOM"+LTRIM(STR(loop))
REPL (cFLD1) WITH cPUBID
REPL (cFLD2) WITH LTRIM(STR(nRANDOMPUB))
ENDIF
nRANDOMPUB=9999999
NEXT loop
ENDIF
SELE A
SKIP
ENDDO
GO TOP
BROW FIELDS BRANCH,RANDOMLOG,RANDOM1,PUB1,RANDOM2,PUB2,RANDOM3,PUB3,RANDOM4,PUB4
Wenn etwas nicht verständlich ist, lass es mich wissen.
rand() ist der Zufallszahlengenerator. Seed es mit -1 zunächst, um die maximale Verteilung zu erhalten. Ich würde Ihren Code überarbeiten, aber es ist nicht verständlich genug. Sollte einen Fehler geben. –
Ich habe versucht Code, funktioniert gut, außer der Tatsache, dass ich noch in Pubs. Wie Pub1 = 4, Pub2 = 4, Pub3 = 3, Pub4 = 8. Die Hauptidee ist, alle Zahlen anders zu machen, und FoxPro zu benutzen .. Ich konnte nicht verstehen, wie. –
Bitte posten Sie Ihre Revisionen. – Missy