byte Array Oluşturma (windows Form App)

Başlatan ehliseyf, 11 Aralık 2015, 23:12:59

ehliseyf

private void button1_Click(object sender, EventArgs e)
        {
            if (checkBox1.Checked == true) { bit1 = 1; } else { bit1 = 0; }
            if (checkBox2.Checked == true) { bit2 = 2; } else { bit2 = 0; }
            if (checkBox3.Checked == true) { bit3 = 4; } else { bit3 = 0; }
            if (checkBox4.Checked == true) { bit4 = 8; } else { bit4 = 0; }
            if (checkBox5.Checked == true) { bit5 = 16; } else { bit5 = 0; }
            if (checkBox6.Checked == true) { bit6 = 32; } else { bit6 = 0; }
            if (checkBox7.Checked == true) { bit7 = 64; } else { bit7 = 0; }
            if (checkBox8.Checked == true) { bit8 = 128; } else { bit8 = 0; }
            textBox1.Text =Convert.ToString(bit1 | bit2 | bit3 | bit4 | bit5 | bit5 | bit6 | bit7 | bit8);

        }

Bu kodu yapabilmenin daha kolay bir yolu var mı ? Amaç CheckBox seçilirse sıralamadaki bitin 1 değerini seçilmezse 0 değerini alacak ve bitlerden byte elde edeceğim.
Code'm mu oturturum !

barisertekin

#1
bit1 = Convert.ToInt32(checkBox1.Checked);
bit2 = Convert.ToInt32(checkBox2.Checked);
...

edit : pardon hep 1 olarak set ediyosun diye gördüm.

bit1 = Convert.ToInt32(checkBox1.Checked) * 1;
bit2 = Convert.ToInt32(checkBox2.Checked) * 2;
bit2 = Convert.ToInt32(checkBox2.Checked) * 4;
...

olsun o zmn :)

ehliseyf

#2
Alıntı yapılan: barisertekin - 11 Aralık 2015, 23:15:26
bit1 = Convert.ToInt32(checkBox1.Checked);
bit2 = Convert.ToInt32(checkBox2.Checked);
...

edit : pardon hep 1 olarak set ediyosun diye gördüm.

bit1 = Convert.ToInt32(checkBox1.Checked) * 1;
bit2 = Convert.ToInt32(checkBox2.Checked) * 2;
bit2 = Convert.ToInt32(checkBox2.Checked) * 4;
...

olsun o zmn :)

Hocam böyle birşey hazırladım. Biraz yardımla. Şimdi ikinci adıma geçiyorum. Bu byte lardan 20 tane var. Yani 20 tane checkbox yada checklistbox var.

int toplam = 0;
            for (int i = 0; i < checkedListBox1.Items.Count - 1; i++)
            {
                bit[i] = 0;
                if (checkedListBox1.GetItemChecked(i) == true)//1dk bu seçilenleri nasıl çağırıyorduk abi selected mı ne sanırım 
                {
                   
                    double a = Math.Pow(2, i);
                    bit[i] = Convert.ToByte(Math.Pow(2, i));
                   // richTextBox1.Text += bit[i] + "\n";
                    toplam += int.Parse(bit[i].ToString());
                }
            }
            textBox1.Text = toplam.ToString();
       



Hazırlamak istediğim tablo bu. Bu tabloyu ileri seviye kullanıcılar değiştirebilecek. Diğerleri hazır configler kullanıcak. Girişte ki bir şifre ile user hazır mı yoksa kendimi seçeceğini söyleyecek.
Code'm mu oturturum !

z

private void button1_Click(object sender, EventArgs e)
        {
            unsigned char B;
            B=0;

            if (checkBox1.Checked B=1;
            if (checkBox2.Checked B|=2;
            if (checkBox3.Checked B|=4;
            if (checkBox4.Checked B|=8;
            if (checkBox5.Checked B|=16;
            if (checkBox6.Checked B|=32;
            if (checkBox7.Checked B|=64;
            if (checkBox8.Checked B|=128;
            textBox1.Text =Convert.ToString(B);

        }
Bana e^st de diyebilirsiniz.   www.cncdesigner.com