Kako da napravim da iz listbox-a koji mi je napravljen tako da je svaka recenica jedna ispod druge da mi samo jednu nasumice rec prebaci u drugi listbox ?
izvlacenje iz listbox-a
Zaključano
Zakačeno
Morao bi jos malo da pojasnis...
Nije bas najjasnije... Budi malo precizniji...
Sta znaci recenica jedna ispod druge!? Nasumicnu rec iz koje recenice?
Ako ne umes da objasnis onda bar slikaj formu i postavi sliku... Pa da pogadjamo...
Citat:
highagain87: Kako da napravim da iz listbox-a koji mi je napravljen tako da je svaka recenica jedna ispod druge da mi samo jednu nasumice rec prebaci u drugi listbox ?
Nije bas najjasnije... Budi malo precizniji...
Sta znaci recenica jedna ispod druge!? Nasumicnu rec iz koje recenice?
Ako ne umes da objasnis onda bar slikaj formu i postavi sliku... Pa da pogadjamo...
probaj ovako:
Code:
Private Sub Command1_Click()
Dim lIndex As Long
lIndex = Random(0, List1.ListCount - 1)
List2.AddItem List1.List(lIndex)
List1.RemoveItem lIndex
End Sub
Function Random(lMin As Long, lMax As Long) As Long
Random = Int(Rnd * (lMax - lMin + 1)) + lMin
End Function
Private Sub Command1_Click()
Dim lIndex As Long
lIndex = Random(0, List1.ListCount - 1)
List2.AddItem List1.List(lIndex)
List1.RemoveItem lIndex
End Sub
Function Random(lMin As Long, lMax As Long) As Long
Random = Int(Rnd * (lMax - lMin + 1)) + lMin
End Function
Mislim da je rekao slucajna rec iz neke recenice, pa sam malo modifikovao Ruzin(Ruza - tako bi u mom kraju zvali Ruzicica) kod.
Nije bas optimizovan, ali s' obzirom da je u pitanju mala kolicina podataka, radi lepo.
Code:
Private Sub Command1_Click()
Dim lIndex As Long
lIndex = Random(0, List1.ListCount - 1)
a$ = fncRandomWord(List1.List(lIndex))
List2.AddItem a$
End Sub
Function Random(lMin As Long, lMax As Long) As Long
Random = Int(Rnd * (lMax - lMin + 1)) + lMin
End Function
Function fncRandomWord(ByVal strRecenica As String) As String
Dim t As Integer
Dim lMax As Integer
Dim strWord As String
Dim pos As Integer
Dim znak$
lMax = Len(strRecenica)
slucajnoT:
t = 1 + Rnd * (lMax - 1)
If Mid$(strRecenica, t, 1) = Chr$(32) Then GoTo slucajnoT
pos = t
strWord = Mid$(strRecenica, t, 1)
Do While Not pos = lMax
pos = pos + 1
znak$ = Mid$(strRecenica, pos, 1)
If znak$ = Chr$(32) Then Exit Do
strWord = strWord + znak$
Loop
pos = t
Do While Not pos = 1
pos = pos - 1
znak$ = Mid$(strRecenica, pos, 1)
If znak$ = Chr$(32) Then Exit Do
strWord = znak$ + strWord
Loop
fncRandomWord = strWord
End Function
Private Sub Command1_Click()
Dim lIndex As Long
lIndex = Random(0, List1.ListCount - 1)
a$ = fncRandomWord(List1.List(lIndex))
List2.AddItem a$
End Sub
Function Random(lMin As Long, lMax As Long) As Long
Random = Int(Rnd * (lMax - lMin + 1)) + lMin
End Function
Function fncRandomWord(ByVal strRecenica As String) As String
Dim t As Integer
Dim lMax As Integer
Dim strWord As String
Dim pos As Integer
Dim znak$
lMax = Len(strRecenica)
slucajnoT:
t = 1 + Rnd * (lMax - 1)
If Mid$(strRecenica, t, 1) = Chr$(32) Then GoTo slucajnoT
pos = t
strWord = Mid$(strRecenica, t, 1)
Do While Not pos = lMax
pos = pos + 1
znak$ = Mid$(strRecenica, pos, 1)
If znak$ = Chr$(32) Then Exit Do
strWord = strWord + znak$
Loop
pos = t
Do While Not pos = 1
pos = pos - 1
znak$ = Mid$(strRecenica, pos, 1)
If znak$ = Chr$(32) Then Exit Do
strWord = znak$ + strWord
Loop
fncRandomWord = strWord
End Function
Nije bas optimizovan, ali s' obzirom da je u pitanju mala kolicina podataka, radi lepo.
Citat:
stefanpn: ...(Ruza - tako bi u mom kraju zvali Ruzicica)...
lol, tako me odavno neko nije zvao, tj jos od osnovne :)
E to mi je bas trebalo sto je stefanpn napisao, e sad me jos nesto muci :) de sta treba da izmenim da mi redosled reci koje izvlaci nebude uvek isti?
kolko ja vidim nece uvek biti isti,vidish da ima Random funkciju ;)
mozes da dodas u Form_Load sledece:
Code:
Randomize Timer
Randomize Timer
Tnx radi sve extra sad me muci jos nesto :D posto imam dugme jedno koje mi izvlaci iz List1 u List2, de treba da stavim msg box da ako neko klikne na to dugme a u List1 nema ni jedna rec da mu izadje poruka da mora da ucita u List1 reci ?
Code:
Private Sub Command1_Click
If List1.ListCount = 0 Then
MsgBox "Morate dodati reci, bla bla.."
Exit Sub
End If
' ovde kod za prebacivanje iz liste u listu...
End Sub
Private Sub Command1_Click
If List1.ListCount = 0 Then
MsgBox "Morate dodati reci, bla bla.."
Exit Sub
End If
' ovde kod za prebacivanje iz liste u listu...
End Sub
A evo i mene, posle vise godina lutanja po internetu, najzad sam se vratio kod kuce...
Mozes dodati Randomize Timer i u Random funkciju, tako ti se nece javiti isti projevi i ako pokreces program svaki put u istom intervalu(u msec).
Mozes dodati Randomize Timer i u Random funkciju, tako ti se nece javiti isti projevi i ako pokreces program svaki put u istom intervalu(u msec).
Code:
Function Random(lMin As Long, lMax As Long) As Long
Randomize Timer
Random = Int(Rnd * (lMax - lMin + 1)) + lMin
End Function
Function Random(lMin As Long, lMax As Long) As Long
Randomize Timer
Random = Int(Rnd * (lMax - lMin + 1)) + lMin
End Function
da, samo sto je tako veca mogucnost da dobije brojeve koji se ponavljaju.
ne mogu sad da nadjem link ali jedan lik je radio istrazivanje bas u vb-u o Rnd i Randomize funkcijama, ali dobro se secam da se na grafiku lepo videlo da je ponavljanje brojeva ucestalije ukoliko se Randomize poziva svaki put kada je potreban nasumican broj (tj svaki put kad se poziva i Rnd) nego ako se Randomize pozove samo jednom na pocetku izvrsavanja programa.
ne mogu sad da nadjem link ali jedan lik je radio istrazivanje bas u vb-u o Rnd i Randomize funkcijama, ali dobro se secam da se na grafiku lepo videlo da je ponavljanje brojeva ucestalije ukoliko se Randomize poziva svaki put kada je potreban nasumican broj (tj svaki put kad se poziva i Rnd) nego ako se Randomize pozove samo jednom na pocetku izvrsavanja programa.
Znam za to, tako je razvaljena jedna serija Poker Aparata, zato sto je software na svaki pritisak na DEAL pozivao Randomize funkciju trebalo je samo izracunati interval imedju zadnjeg pritiska na DEAL i ako se pogodi pravi trenutak ... Hm... Znas tacno koja karta dolazi sledeca. Ali to ovde ne vazi, jer tajmer broji od trenutka kada je pritisnuto Power dugme, tako da ne moze da se dogodi da dugme bude se funkcija pozove na tacno 134523453.2432345 sec. Ali opet nije pametno koristiti ovo jer je Randomize jako hardverski zahtevna funkcija.
Neka se uzme u obzir da su ti poker aparati bile 8-bitne masine na 1 MHz...
Neka se uzme u obzir da su ti poker aparati bile 8-bitne masine na 1 MHz...