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


Sortering

Postades av 2004-03-24 12:12:28 - Lennart Danielsson, i forum visual basic - allmänt, Tråden har 14 Kommentarer och lästs av 558 personer

Hej

Är det någon som kan hjälpa till tro. Jag vill ha slumpade nummer att komma i fallande ordning i text rutor se bifogad kod:
Har en array label1(1) till label1(40)
och text2(i) till text2(i) från 7 - 12 text rutor vilket som är valt i chekbox.

Sub Lotto()
Dim LottoArray(40) As Long, i As Long, num As Long
'************************ slumpar nummer
'********** Numsize = 7, 8, 9, 10, 11, 12 = lotto
i = 1
Do Until i > numsize

num = Int(Rnd * 40) + 1

If LottoArray(num) = 0 Then
LottoArray(num) = num

Label1(num).BackColor = vbRed
Label1(num).ForeColor = vbWhite
Label1(num).FontBold = True
Label1(num).FontSize = 12
Label1(num).Caption = num

' HÄR VILL JAG I DESSA TEXT2(I).TEXT RUTORNA HA FALLANDE ORDNING TEX:
' FRÅN VÄNSTER TILL HÖGER 2, 8, 14, OSV TILL NUMSIZE vilket som är valt i checkbox
'
Text2(i).Text = num
i = i + 1

End If

Loop
END SUB


Svara

Sv: Sortering

Postades av 2004-03-24 12:46:39 - Sven Åke Persson

Låt Text2 vara en enkel TextBox Ej kontrollarray.

' HÄR VILL JAG I DESSA TEXT2(I).TEXT RUTORNA HA FALLANDE ORDNING TEX:
' FRÅN VÄNSTER TILL HÖGER 2, 8, 14, OSV TILL NUMSIZE
' Text2(i).Text = num
i = i + 1
End If
Loop
For i = 1 To 40
If LottoArray(i) <> 0 Then _
Text2.Text = Text2.Text & Str$(i) & ","
Next 'i
END SUB


Svara

Sv: Sortering

Postades av 2004-03-24 15:09:19 - Lennart Danielsson

Hej och tack för svaret.
Men måste jag ta bort alla controll arryerna och göra 12 textboxar istället.

Nu får jag error nr:461 Datameber not found


Svara

Sv: Sortering

Postades av 2004-03-24 15:20:01 - Sven Åke Persson

Nää varför skall du ha 12 TextBoxar gör så här lägg dit en lång Text3
och ändra koden så här så förstår du vad jag menar.

Varför duger det inte med en Label ? Skulle du skriva i Text2 boxarna ?
<code>
' HÄR VILL JAG I DESSA TEXT2(I).TEXT RUTORNA HA FALLANDE ORDNING TEX:
' FRÅN VÄNSTER TILL HÖGER 2, 8, 14, OSV TILL NUMSIZE
' Text2(i).Text = num
i = i + 1
End If
Loop
For i = 1 To 40
If LottoArray(i) <> 0 Then _
Text3.Text = Text3.Text & Str$(i) & ","
Next 'i
END SUB
</code>

Obs Text2 är remmad


Svara

Sv: Sortering

Postades av 2004-03-24 15:24:26 - Lennart Danielsson

Ja det hade jag tänkt mig att göra ( skriva i dom)


Svara

Sv: Sortering

Postades av 2004-03-24 16:02:48 - Sven Åke Persson

Oki på det men som du skrivit nu så har du alltså 40 Label :s
och 40 TextBoxar (Text2(40).Text ! ? , är det så ?

Alltså Hur många Label1:s har du och hur många Text2 har du ?.


Svara

Sv: Sortering

Postades av 2004-03-24 17:16:25 - Lennart Danielsson

Jag har en matriss med 40 labels i en array, som slumpgenerator 40 nummer = måltips och 35 nummer = lotto

text boxarna ligger för sig med text2(i) = 12 st
vilket motsvarar detta
lotto 7 nummer = text2(i) ' 7 textboxar
lotto 8 nummer = text2(i) ' 8 textboxar
osv till 12 nummer
om jag väljer att skriva egna nummer och har valt lotto 7 skall jag kunna skriva i dem.
annars om jag slumpar skall de skrivas som tidigare i fallande ordning


Svara

Sv: Sortering

Postades av 2004-03-24 17:22:20 - Sven Åke Persson

Oki nu förstår jag exakt. Lösning kommer på denna kanal.
Förutsätter att du Label1(0) och Text2(0) som första .!?

Dom skall vara med !, annars får du en massa onödiga problem.


Svara

Sv: Sortering

Postades av 2004-03-24 17:40:54 - Sven Åke Persson

<code>
Sub Lotto()
'Principlösning som kanske behöver småjusteras
Dim LottoArray(40) As String, i As Long, num As Long
'************************ slumpar nummer
'********** Numsize = 7, 8, 9, 10, 11, 12 och 40
For i = 0 To 39
num = Int(Rnd * 40) + 1
If LottoArray(num) = "" Then
LottoArray(num) = "X"
Label1(num).BackColor = vbRed
Label1(num).ForeColor = vbWhite
'Det här verkar onödigt att göra 40 ggr,
'kan du inte göra detta i designläge
Label1(num).FontBold = True
Label1(num).FontSize = 12
'*****************************
Label1(num).Caption = num
End If
Next 'i
For i = 0 To 39
If LottoArray(i) <> "X" Then _
Text(2).Text = CStr(i)
Next 'i
End Sub
</code>


Svara

Sv: Sortering

Postades av 2004-03-24 18:46:49 - Lennart Danielsson

tack för det sa telia ok testar kollar om det fungerar har du någon email ????
isåfall är min danlenn@telia.com


Svara

Sv: Sortering

Postades av 2004-03-24 23:14:37 - Sven Åke Persson

Som vanligt det blev snabbt och fel när man inte provkör.Sista delen skall vara så här.
<code>
Dim n As Long
For i = 0 To 39
If LottoArray(i) <> "X" Then
Text2(n).Text = CStr(i)
n = n+ 1
End If
Next 'i
End Sub
</code>


Svara

Sv: Sortering

Postades av 2004-03-25 08:13:52 - Lennart Danielsson

Tack
Nu måste jag döpa om hela controll arryaen till 0 - 39 istället för 1 - 40
eller hur.


Svara

Sv: Sortering

Postades av 2004-03-25 09:39:22 - Markus Jarderot

Här är en enkel sorteringsrutin.
Jag antar att LottoArray är en Array med index som sträcker sig från 0 till 39 och innehåller färdiga slumtal (eller vilka andra värden som helst).
<code>
Dim i As Long, j As Long, Tmp As Long '(Du kan ta bort 'i' eftersom du har den ovanför, den är med för att göra koden fullständig)
For i = 0 to numsize - 2 'Gå från 0 till NÄST sista elementet
For j = i + 1 To numsize - 1 'Gå från i + 1 till sista elementet
If LottoArray(j) < LottoArray(i) Then 'Sortera med mindre först
Tmp = LottoArray(i)
LottoArray(i) = LottoArray(j)
LottoArray(j) = Tmp
End If
Next j
Next i
</code>
Den här metoden tror jag kallas quicksort. Det finns snabbare metoder (ex. Bubble sort), fast de har betydligt med komplicerad kod.

Ett annat sätt att byta väden på två nummer-variabler utan Tmp-variabel är enligt följande:
<code>
LottoArray(i) = LottoArray(i) - LottoArray(j) 'STÖRRE - MINDRE = SKILLNAD
LottoArray(j) = LottoArray(j) + LottoArray(i) 'MINDRE + SKILLNAD = STÖRRE
LottoArray(i) = LottoArray(j) - LottoArray(i) 'STÖRRE - SKILLNAD = MINDRE
</code>
(hmm.. 'j' verkar se ut som 'i' med den där text-fonten)


Svara

Sv: Sortering ( MizardX )

Postades av 2004-03-25 10:57:24 - Lennart Danielsson

Men vilken parameter skall användas för text2.text boxarna ???? = tmp eller ????
Vilka består i från 7 till 12 st beronde på vald ckeckbox


Svara

Sv: Sortering ( MizardX )

Postades av 2004-03-25 18:21:50 - Sven Åke Persson

Så här blev lösningen på just den delen av hans problem.Onödigt att blanda in
en sorteringsalgoritm här.Man kan sortera en Array genom att använda dess Index
<code>
Sub Lotto7()
Dim i As Long, num As Long, n As Long
Dim LottoArray(35) As Boolean
'************************ slumpar nummer
i = 1
Do Until i > numsize '7
num = Int(Rnd * 35) + 1
If LottoArray(num) = False Then
LottoArray(num) = True
Label1(num).BackColor = vbRed
Label1(num).ForeColor = vbWhite
Label1(num).FontBold = True
Label1(num).FontSize = 12
Label1(num).Caption = num
i = i + 1
End If
Loop
n = 1
For i = 1 To 35
If LottoArray(i) <> 0 Then
Text2(n).Text = CStr(i)
n = n + 1
End If
Next 'i
End Sub
</code>


Svara

Nyligen

  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak
  • 16:14 Vem anlitar man egentligen när tak
  • 16:13 Vem anlitar man egentligen när tak
  • 11:52 Noen erfaring med uttak hos Mostbe
  • 11:51 Noen erfaring med uttak hos Mostbe

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 570 634
27 958
271 741
509
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