Springen naar inhoud


- - - - -
Solved

Probleem Met 0 Tot 1 En Doorschuiven.

Shifting

  • Log in a.u.b. om te beantwoorden
Er zijn 14 reacties in dit onderwerp

#1 pascalbianca

pascalbianca

    Webmaster/Admin

  • Webmaster
  • 3682 berichten
    Laatst bezocht gisteren, 18:40
  • LocatieSusteren, Nederland, Midden Limburg.
Inzender

Geplaatst op 08 May 2012 - 17:42


Ja de titel spreek een beetje voor zichzelf al.
Ik zit met een probleem en ik kan wel de extreme omweg nemen , maar dat is zoveel codes dat ik dat eigenlijk niet zie zitten.
Ik weet dat het vrij kort kan , alleen ik zie het even niet, zal denkelijk wel zijn omdat ik al bijna de gehele dag eraan ben aan het rotzooien :)

Zal even uitleggen wat de bedoeling is.
Ik heb 1 knop die steeds doet optellen, dus van 0 tot bv 10 met stappen van 1 te zien in een textbox. (dit heb ik al klaar).
Ik heb 5 labels, die allemaal op 0 staan. (deze heb ik ook)
Het is de bedoeling als die knop word ingedrukt dat in label1 een 1 komt te staan.
Druk ik nog eens op die knop , dus dan word hij 2 ,maar dan moet label1 naar 0 en label2 naar 1.
Druk ik weer op de knop , dus dan word hij 3, dan moet label1 naar 1 en label2 blijft op 1.
Weer de knop, word label1 0 , label2 0 en label3 1.
Zoals jullie zien doe ik dus eigenlijk soort binair tellen.

Wie weet een korte code om dit te fixen want ik weet het even niet meer.

Alvast bedankt mensen.

Wat is het gezegde in Ontwikkeling van software.: Er zijn vele wegen die naar Rome leiden, de kunst is de goede te vinden.
email : pascalbianca@vbib.be
of email : webmaster@vbib.be
MSN.:: pmhaschuffelers@hotmail.com
Volg ook mijn Raspberry Pi Blog.:: link


Geplaatste afbeelding


Huisregels - Tutorials - VS 2012 Express - Keybinding Posters - Code Tags gebruiken - LessThenDot - MSDN


*** If you like you're solution or appriciate the crew's effort, please click on the facebook like or the Google + button ***


#2 Luckie64

Luckie64

    Senior Developer

  • Leden
  • PipPipPip
  • 200 berichten
    Laatst bezocht gisteren, 17:57

Geplaatst op 08 May 2012 - 18:23

Visual Basic Code:
 Sub display(teller As Integer)
Dim i As Integer
For i = 1 To 5
If teller Mod 2 = 1 Then
Me.Controls("Label" & i).Text = "1"
Else
Me.Controls("Label" & i).Text = "0"
End If
teller = teller \ 2
Next i
End Sub

Groeten,

Luc

#3 DieterVB

DieterVB

    Professional Developer

  • Leden
  • PipPipPipPip
  • 340 berichten
    Laatst bezocht 08 Apr 2013 14:49
  • LocatieVlaamse Ardennen

Geplaatst op 08 May 2012 - 18:24

Hallo,

Bedoel je zoiets?

Code:
Dim Val As Integer = 0
	Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
		Val += 1
		Dim Labels As Label() = {Label1, Label2, Label3, Label4, Label5}
		Dim Binary As String = Convert.ToString(Val, 2).PadLeft(Labels.Length, "0"c)
		For i = 0 To Labels.Length - 1
			Labels(i).Text = Binary.Reverse(i)
		Next
	End Sub


Groeten

#4 josk79

josk79

    Professional Developer

  • Leden
  • PipPipPipPip
  • 491 berichten
    Laatst bezocht 01 May 2013 19:42

Geplaatst op 08 May 2012 - 18:25

kom op zeg... pascalbianca toch!

als je de labels nou eens in een array plaatst kun je zoiets doen:

Code:
For i = 0 to labelarray.size
   Labelarray(i).text = if(i=mijngetal, "1“, "0")
Next



#5 josk79

josk79

    Professional Developer

  • Leden
  • PipPipPipPip
  • 491 berichten
    Laatst bezocht 01 May 2013 19:42

Geplaatst op 08 May 2012 - 18:26

ho, verkeerd gelezen. ik dacht dat je alleen een 1 wilde in het n-de label.

#6 pascalbianca

pascalbianca

    Webmaster/Admin

  • Webmaster
  • 3682 berichten
    Laatst bezocht gisteren, 18:40
  • LocatieSusteren, Nederland, Midden Limburg.
Inzender

Geplaatst op 08 May 2012 - 19:30

Bericht bekijkenjosk79, op 08 May 2012 - 18:26, zei:

ho, verkeerd gelezen. ik dacht dat je alleen een 1 wilde in het n-de label.

Geen probleem kerel, lees ook vaak te snel over sommige dingen heen.
Luckie64 en DieterVb thx, beide codes doen hun werk.

NU heb ik nog een klein vraagje erbij.
Zowel de omhoog knop als omlaag knop werken beide.
Maar nu stel ik voer een nummer gelijk in de textbox ipv via de knoppen te werken, hoe ziet die code eruit dan want jullie gegeven codes geven uiteraard een ander effect.

Alvast bedankt voor jullie inzet :)

Wat is het gezegde in Ontwikkeling van software.: Er zijn vele wegen die naar Rome leiden, de kunst is de goede te vinden.
email : pascalbianca@vbib.be
of email : webmaster@vbib.be
MSN.:: pmhaschuffelers@hotmail.com
Volg ook mijn Raspberry Pi Blog.:: link


Geplaatste afbeelding


Huisregels - Tutorials - VS 2012 Express - Keybinding Posters - Code Tags gebruiken - LessThenDot - MSDN


*** If you like you're solution or appriciate the crew's effort, please click on the facebook like or the Google + button ***


#7 Luckie64

Luckie64

    Senior Developer

  • Leden
  • PipPipPip
  • 200 berichten
    Laatst bezocht gisteren, 17:57

Geplaatst op 08 May 2012 - 19:41

Visual Basic Code:
If IsNumeric(TextBox1.Text) Then
Display(CInt(TextBox1.Text))
End If


#8 pascalbianca

pascalbianca

    Webmaster/Admin

  • Webmaster
  • 3682 berichten
    Laatst bezocht gisteren, 18:40
  • LocatieSusteren, Nederland, Midden Limburg.
Inzender

Geplaatst op 08 May 2012 - 21:39

Bericht bekijkenLuckie64, op 08 May 2012 - 19:41, zei:

Visual Basic Code:
If IsNumeric(TextBox1.Text) Then
Display(CInt(TextBox1.Text))
End If
Waar komt die display vandaan als ik vragen mag want die ken ik niet.

Wat is het gezegde in Ontwikkeling van software.: Er zijn vele wegen die naar Rome leiden, de kunst is de goede te vinden.
email : pascalbianca@vbib.be
of email : webmaster@vbib.be
MSN.:: pmhaschuffelers@hotmail.com
Volg ook mijn Raspberry Pi Blog.:: link


Geplaatste afbeelding


Huisregels - Tutorials - VS 2012 Express - Keybinding Posters - Code Tags gebruiken - LessThenDot - MSDN


*** If you like you're solution or appriciate the crew's effort, please click on the facebook like or the Google + button ***


#9 Luckie64

Luckie64

    Senior Developer

  • Leden
  • PipPipPip
  • 200 berichten
    Laatst bezocht gisteren, 17:57

Geplaatst op 08 May 2012 - 21:55

Visual Basic Code:
Sub display(teller As Integer)
Dim i As Integer
For i = 1 To 5
If teller Mod 2 = 1 Then
Me.Controls("Label" & i).Text = "1"
Else
Me.Controls("Label" & i).Text = "0"
End If
teller = teller \ 2
Next i
End Sub
Subroutine die ik eerst liet zien!
Het is uwen dag precies niet he Pascal! :shock:

#10 pascalbianca

pascalbianca

    Webmaster/Admin

  • Webmaster
  • 3682 berichten
    Laatst bezocht gisteren, 18:40
  • LocatieSusteren, Nederland, Midden Limburg.
Inzender

Geplaatst op 08 May 2012 - 22:04

Nee heb het in de gaten, denk ook dat ik vandaag eens ermee kap en lekker tv ga kijken , maar toch bedankt Luckie64 ;)

Wat is het gezegde in Ontwikkeling van software.: Er zijn vele wegen die naar Rome leiden, de kunst is de goede te vinden.
email : pascalbianca@vbib.be
of email : webmaster@vbib.be
MSN.:: pmhaschuffelers@hotmail.com
Volg ook mijn Raspberry Pi Blog.:: link


Geplaatste afbeelding


Huisregels - Tutorials - VS 2012 Express - Keybinding Posters - Code Tags gebruiken - LessThenDot - MSDN


*** If you like you're solution or appriciate the crew's effort, please click on the facebook like or the Google + button ***


#11 pascalbianca

pascalbianca

    Webmaster/Admin

  • Webmaster
  • 3682 berichten
    Laatst bezocht gisteren, 18:40
  • LocatieSusteren, Nederland, Midden Limburg.
Inzender

Geplaatst op 08 May 2012 - 22:35

Kon het niet laten om het af te maken want dan is dat ook klaar.
Alles loopt perfect alleen mijn knop om de waarde omlaag te brengen gaat in de textbox goed alleen met de 0 en 1 niet terug lopend.

ik heb de code van de omhoog knop aangepast en ziet nu er zo uit.:
Visual Basic Code:
 Val -= 1
		Dim Labels As Label() = {t10, t9, t8, t7, t6, t5, t4, t3, t2, t1}
		Dim Binary As String = Convert.ToString(Val, 2).PadLeft(Labels.Length, "0"c)
		For i = 0 To Labels.Length - 1
			Labels(i).Text = Binary.Reverse(i)
		Next
maar die for lus klopt natuurlijk niet , maar hoe wel? daarna stop ik ook echt voor vandaag :S

Wat is het gezegde in Ontwikkeling van software.: Er zijn vele wegen die naar Rome leiden, de kunst is de goede te vinden.
email : pascalbianca@vbib.be
of email : webmaster@vbib.be
MSN.:: pmhaschuffelers@hotmail.com
Volg ook mijn Raspberry Pi Blog.:: link


Geplaatste afbeelding


Huisregels - Tutorials - VS 2012 Express - Keybinding Posters - Code Tags gebruiken - LessThenDot - MSDN


*** If you like you're solution or appriciate the crew's effort, please click on the facebook like or the Google + button ***


#12 DieterVB

DieterVB

    Professional Developer

  • Leden
  • PipPipPipPip
  • 340 berichten
    Laatst bezocht 08 Apr 2013 14:49
  • LocatieVlaamse Ardennen

Geplaatst op 08 May 2012 - 23:21

Je hebt het juist geïmplementeerd :-o

Maar je mag die Binary.Reverse(i) vervagen door gewoon Binary(i).
Ik had die Reverse er ingestoken omdat je de labels zo kon ordenen
{t1, t2, t3, t4, t5, ...}
Nu je ze toch al omgekeerd geordend hebt is de reverse niet meer nodig.

Citeren

Maar nu stel ik voer een nummer gelijk in de textbox ipv via de knoppen te werken, hoe ziet die code eruit dan want jullie gegeven codes geven uiteraard een ander effect.
Val vervangen door de TextBox.Text


Code:
	Dim Labels As Label() = {t10, t9, t8, t7, t6, t5, t4, t3, t2, t1}
	Dim Binary As String = Convert.ToString(TextBox.Text, 2).PadLeft(Labels.Length, "0"c)
	For i = 0 To Labels.Length - 1
		Labels(i).Text = Binary(i)
	Next


Greez

#13 Luckie64

Luckie64

    Senior Developer

  • Leden
  • PipPipPip
  • 200 berichten
    Laatst bezocht gisteren, 17:57

Geplaatst op 09 May 2012 - 08:25

Prachtige code Dieter!
Ik wist niet van de Convert......... :grin:

Groeten,

Luc

#14 DieterVB

DieterVB

    Professional Developer

  • Leden
  • PipPipPipPip
  • 340 berichten
    Laatst bezocht 08 Apr 2013 14:49
  • LocatieVlaamse Ardennen

Geplaatst op 09 May 2012 - 12:22

Thanks Luckie64! :smile:

#15 RedThread

RedThread

    Beheerder VBIB

  • Beheerder
  • 3294 berichten
    Laatst bezocht gisteren, 15:49
  • LocatieTongeren,Belgium.
Inzender

Geplaatst op 09 May 2012 - 13:21

Weet wel dat het is opgelost, maar gewoon voor de fun :

Visual Basic Code:

Public Class Form1

	Dim val As Integer = 0

	Sub display(v As Integer)
		showval.Text = CStr(v Mod 256)
		dig.Text = ""
		For i As Integer = 0 To 7
			If v Mod 2 = 1 Then
				dig.Text &= "1"
			Else
				dig.Text &= "0"
			End If
			v = v \ 2
		Next i
	End Sub

	Private Sub incr_Click(sender As System.Object, e As System.EventArgs) Handles incr.Click
		val += 1 : If val = 11 Then val = 0
		display(val)
	End Sub

	Private Sub decr_Click(sender As System.Object, e As System.EventArgs) Handles decr.Click
		val -= 1 : If val = -1 Then val = 11
		display(val)
	End Sub

	Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
		display(val)
	End Sub
End Class



*** If you like youre solution or appriciate the crew's effort, please click on the facebook like or the Google +1 button ***

 

- Any fool can know, the point is to understand -


email : RedThread@vbib.be | MSN : Red_Thread@Hotmail.com

Huisregels - Tutorials - VS 2012 Express - Keybinding Posters - Code Tags gebruiken - LessThenDot - MSDN






Ook met taq Solved, Shifting voorzien

0 gebruiker(s) lezen dit onderwerp

0 lid(leden), 0 bezoeker(s), 0 anonieme gebruikers

Inloggen


[Solved] Untitled 1

Hosting provided by Combell
Met dank aan Jürgen voor de jarenlange inzet van visualbasic.be (anno dec 2000)
Met dank aan Mike en Ronneke voor de jarenlange inzet van vbib.be (anno dec 2010)
vbib.be - vbnet.be - vbdotnet.be - visualbasic.be