Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB.NET: Lukuvälin kääntäminen ympäri (1->10, 2->9, 3->8 jne.)

Happy [05.02.2015 16:42:31]

#

(Vanha otsikko: Numeroiden "Manipulointi" tai jotain?)

MOI KAIKILLE.

Oli "ehkä hiukan" omituinen tai typerä tuo otsikko mutta en tiedä
miksi tätä pitäisi kutsua.

Laitan tähän alkuun heti pikku koodin josta pitäisi käydä ilmi mitä yritän.

Public Class Form1

    Private Data As Integer

    Private Sub Label1_TextChanged(sender As Object, e As EventArgs) Handles Label1.TextChanged

        If ListBox1.Items.Item(0) = "1" Then Label1.Text = "10"
        If ListBox1.Items.Item(0) = "2" Then Label1.Text = "9"
        If ListBox1.Items.Item(0) = "3" Then Label1.Text = "8"
        If ListBox1.Items.Item(0) = "4" Then Label1.Text = "7"
        If ListBox1.Items.Item(0) = "5" Then Label1.Text = "6"
        If ListBox1.Items.Item(0) = "6" Then Label1.Text = "5"
        If ListBox1.Items.Item(0) = "7" Then Label1.Text = "4"
        If ListBox1.Items.Item(0) = "8" Then Label1.Text = "3"
        If ListBox1.Items.Item(0) = "9" Then Label1.Text = "2"
        If ListBox1.Items.Item(0) = "10" Then Label1.Text = "1"

    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Data = Data + 1
        ListBox1.Items.Item(0) = CStr(Data)
        Label1.Text = ListBox1.Items.Item(0)
    End Sub

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ListBox1.Items.Add("1")
    End Sub
End Class

Tuollainen jos joku haluaa kokeilla...

Todellisuudessa tuohon Listbox1 kerätään tietoa DCS A-10c Pelistä. Josta sitten jaan sen Arduino Uno "korteille".

Nyt tuli sitten sellainen ongelma että Servomoottoria ei voi pyörittä ns.
väärään suuntaan. (Ainakaan en löytänyt mitään kirjastoa Arduinolle.)
Ja tuosta pelistä saa Datan pihalle vain asteikolla 1-100. :(

Joten kaikki data mikä pelistä tulee pitää muuntaa päinvastaiseksi.
Eli jos saan arvon (100) niin se pitäisi muuntaa arvoon (1) ja päinvastoin.

Joo... Onnistuuhan se juuri noin kuinka tuossa koodissa on tuo muutos tehty
mutta rupeaa tulemaan koodia aika monta A4:sta jos tekee sen noin.
Parisen kymmentä servoa ja jokaisessa 270 numeroa (astetta) muutettavana.

Siis olisiko/löytyisikö tuohon jotain "nopeampaa" muunto hommaa, vai onko mahdoton tehtävä??

Happy.

TuomasK [05.02.2015 16:54:39]

#

Tämähän on erittäin yksinkertainen juttu. Mietippä mistä luvusta pitää vähentää tuleva arvo (vaikka 7), että saadaan lähtevä arvo (4)

Happy [05.02.2015 18:13:34]

#

TuomasK kirjoitti:

Tämähän on erittäin yksinkertainen juttu. Mietippä mistä luvusta pitää vähentää tuleva arvo (vaikka 7), että saadaan lähtevä arvo (4)

No niinpä tietenkin, KIITOS kun pistit miettimään.

Public Class Form1

    Private Data As Integer

    Private Sub Label1_TextChanged(sender As Object, e As EventArgs) Handles Label1.TextChanged
                   ' TÄHÄN MAX HALUTTU ASTE LUKU
        Label1.Text = 270 - ListBox1.Items.Item(0)

      End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Data = Data + 1
        ListBox1.Items.Item(0) = CStr(Data)
        Label1.Text = ListBox1.Items.Item(0)
    End Sub

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ListBox1.Items.Add("1")
    End Sub
End Class

Joskus sitä ei vaan tajua itte mitään...
Ennen kuin joku pistää miettimään asioita .

KIITOS, KIITOS Tuomas!

Happy.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta