Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Inte Slumpa fram samma text två gånger

Postades av 2002-07-04 18:43:53 - Per Porserot, i forum visual basic - allmänt, Tråden har 4 Kommentarer och lästs av 515 personer

Jag undra hur jag ska bära mig åt för att inte samma framslumpade text ska komma fram två(eller fler) gånger efter varandra, så här ser koden ut nu:

<code>
Private Sub cmdRandom_Click()
Dim data(0 To 1000) As String

data(0) = "Test"
data(1) = "Det här är också ett test"
data(2) = "Och det här med"
data(3) = "Test igen"

MsgBox data(Rnd(UBound(data)) * 2)
End Sub
</code>

Skulle vara tacksam om någon hade en bra kod som kan lösa mitt problem..

/MVH Per


Svara

Sv: Inte Slumpa fram samma text två gånger

Postades av 2002-07-04 22:15:13 - Björn Lindahl

Beror lite på hur du använder arrayen.

Laddar du inte om arayen med all text varje gång du använder den kan du göra sä här:

1:
Töm den position som har använts till en tom sträng.
Kontrollera att om du valt en position med en tom sträng så slumpa om en gång till. Kan bli svårt till slut om du slumpat många gånger att hitta en sträng.


2:
Radera hela den post som har slupats fram och dimersionra om arrayen. Det är lättare om du då använder dig av en collection iställlet fär en array. Då slippper du flytta alla poster ett steg, collection gör detta automatiskt.



Laddar du om arrayen varje gång du ska slumpa så får du spara det positioner du använt.
3:
Vid första slumpningen skapar du en andra array som innehäller positionerna eller texten som slumpades fram. Vid nästa slumpning kontrollerar du om den slumpade positionen finns i den andra arrayen så slumpar du en gång till.



Tror det blev rätt, lite mycket att komma på rätt upp och ner.


Svara

Sv: Inte Slumpa fram samma text två gånger

Postades av 2002-07-04 23:47:14 - David Emilsson

jag hackade ihop en liten lösning som ska funka.
den fungerar så att den går igenom hela arrayen och byter varje värde med ett annat framslumpat värde.

<code>
Dim m, data(0 To 1000) As String

Private Sub Form_Load()
Dim slump, temp
'fyll på med data här:
data(0) = "Test"
data(1) = "Det här är också ett test"
data(2) = "Och det här med"
data(3) = "Test igen"

Randomize
For i = 0 To 3 'ersätt 3:an med antalet data minus ett.
slump = Round(Rnd() , 0)
temp = data(i)
data(i) = data(slump)
data(slump) = temp
Next
m = 0
End Sub

Private Sub cmdRandom_Click()
if m < 4 then ' byt ut fyran mot antalet data
MsgBox data(m)
m = m + 1
Else
MsgBox "Alla värden har gåtts igenom. Nu börjar vi om igen."
m = 0
end if
End Sub
</code>





Svara

Sv: Inte Slumpa fram samma text två gånger

Postades av 2002-07-05 08:44:52 - Niklas Jansson

>...åt för att inte samma framslumpade text ska komma fram två(eller fler) gånger efter varandra...<br><br>

Detta låter som att man skulle kunna få texten som:<br><br>

a b a b.<br><br>

I så fall är det väldigt enkelt att lösa det.<br><br>

<code>
Private Sub cmdRandom_Click()
Dim data(0 To 1000) As String, iLastIndex As Long, iIndex As Long

data(0) = "Test"
data(1) = "Det här är också ett test"
data(2) = "Och det här med"
data(3) = "Test igen"
iIndex = Rnd(UBound(data)) +1
Do While iIndex = iLastIndex
iIndex = Rnd(UBound(data)) +1
Loop
iLastIndex = iIndex
MsgBox data(iIndex)
End Sub
</code>

För övrigt bör du inte initiera strängarna i suben. Gör dem antingen statiska eller globala och initiera dem en gång.<br><br>

/Niklas Jansson


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 607
27 953
271 708
629
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies