Aceminin C# sorulari

Başlatan z, 30 Mayıs 2012, 08:19:05

subram

Char.IsLetterOrDigit(ch) veya !Char.IsLetterOrDigit(ch)

nasıl kullanılır bu iki komut çözemedim.
http://www.elektronark.org  Türkiyede Elektronik Kültürünü Değiştirmeye Geliyoruz

ULAGA

Alıntı yapılan: subram - 09 Haziran 2012, 01:59:47
Char.IsLetterOrDigit(ch) veya !Char.IsLetterOrDigit(ch)

nasıl kullanılır bu iki komut çözemedim.

İlki ch değişkeni harf ya da rakamsa.
İkicisi ise ch değişkeni harf ya da rakam değilse.

cicjoe

#137
=) o amacla soylemedim hocam, yani niye kullanmadiniz gibisinden, yoksa ayni isi yapinca farkmaz. kodda 0-9 a-z A-Z gorunce birden aklima geldi =)

@subram
c#'da char 2 byte. yani 0-255 araligini tasiyor. unicode destegi icin. ama noktalama isaretlerini iptal etmek isterseniz mesela soyle kullanabilirsiniz.

if (Char.IsLetterOrDigit(ch))
    txtDisplay.Text += ch.ToString();
else
    e.Handled = true;

subram

güzelmiş. sağolun. bu arada şu kurs işini nasıl hızlandırabiliriz :D
http://www.elektronark.org  Türkiyede Elektronik Kültürünü Değiştirmeye Geliyoruz

desman

Hocam peki iki tuşa aynı anda basılması gerekiyorsa nasıl yaparız.
Mesala 'a' ve 'w'ye aynı anda basıldıgında messageBox açılsın istiyorum, nasıl yaparız bunu. ???
A freshman at YTU

ULAGA

Alıntı yapılan: desman - 09 Haziran 2012, 14:41:06
Hocam peki iki tuşa aynı anda basılması gerekiyorsa nasıl yaparız.
Mesala 'a' ve 'w'ye aynı anda basıldıgında messageBox açılsın istiyorum, nasıl yaparız bunu. ???

Şunu bir dene:
https://rapidshare.com/files/1406654267/WindowsFormsApplication1.zip

Mucit23

Arkadaşlar tekrar merhaba.
Bugün işlerin hafiflemesiyle birlikte yine C#üzerinde çalışmaya başladım. Birkaç sorum olacak.
C# üzerinde kullanılabilir sanal seri portları(Com1,Com2,Com3....)öğrenip combobox içerisinde listelemek istiyorum. Bunu nasıl yaparım?
Diğer bir sorum ise şudur.
Seri port terminal benzeri birşey yazıyorum. Programda en son ayarladığım değerleri( Baud Değeri, Com noktası vs) Kayıt edip Formu tekrar çalıştırdığımda bu değerleri alıp combobox içerisine yerleştirmek istiyorum. Yani en sonki ayarlar değiştirlmediği sürece kalacak. Bunu nasıl yaparım?

justice_for_all

System.IO.Ports.SerialPort.GetPortNames ile yapabilirsin.diğer sorunun cevabı ise buyuk ihtimal dosyadan okuma ile olur gibi dusunuyorum.
Deneyip de başaramayanları değil, yalnızca denemeye bile kalkışmayanları yargıla.   Gökhan Arslanbay

Mucit23

#143
En iyisi şöyle yapayım kayıt işlemini.
Forumdan çıkarken bir txt dosyası açıp. Bu dosya üzerine sonki değerleri yazıp. Form yüklenirken ise txt dosyasını okuyup bu değerleri tekrar combobox içerisine yerleştireyim. Bunu yapayım sonra kullanılabilir portları öğrenme işine bakıcağım...

justice_for_all

kullanılabilir portları ögrenme olayında hiç bir şey yok sadece daha önce verdiğim kodu kullanacaksın.o sana string dizisi verir o diziyide direkt olarak combo box a atabilirsin.
Deneyip de başaramayanları değil, yalnızca denemeye bile kalkışmayanları yargıla.   Gökhan Arslanbay

vitruvius

Şöyle yapabilirsiniz hocam:

private void Form1_Load(object sender, EventArgs e)
        {
            comboBox1.DataSource = System.IO.Ports.SerialPort.GetPortNames();
            comboBox1.SelectedItem = 1;
        }

Mucit23

#146
Sağolun arkadaşlar. Çok Teşekkür Ederim.
Dosya kayıt işlemini başardım.(Biraz kopya çektim aslında  ::))
Şimdi  kullanılabilir portlara bakalım..

mesaj birleştirme:: 11 Temmuz 2012, 16:35:07

Birde şöyle bir problem var anlam veremiyorum.

Form ilk çalıştırıldığında işletilen events hangisidir. İnternette bakıyorum hep private void Form1_Load(object sender, EventArgs e)
evets içerisine yazılıyor. Ama ben buraya kodlarımı yazdığımda çalıştırılmıyor. Bunun yerine public Form1() events içerisine yazıyorum çalıştırılıyor. Buna hakikaten anlam veremiyorum yazdığım kodlar şunlar. Bi inceleyebilirmisiniz.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;
using Microsoft.Win32;
using System.IO;
using System.Runtime.InteropServices;
using System.Text;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        int baud = 1200;

        public Form1()
        {
            InitializeComponent();

            FileStream Srw;
            StreamReader Sr;

            Srw = new FileStream("Old_Value.txt", FileMode.Open, FileAccess.Read);
            Sr = new StreamReader(Srw);
            comboBox1.Text = Sr.ReadLine();
            Sr.Close();
            comboBox2.Text = "Com1";
            connect.Text = "Bağlan";
            connect.BackColor = Color.Green;
            connect.ForeColor = Color.White;
            connect.Text = "Baslat";

        }

        private void Form1_Load(object sender, EventArgs e)
        {


            if (serialPort1.IsOpen)
            {
                serialPort1.Close();
            }
            serialPort1 = new SerialPort();
          //  serialPort1.DataReceived += new SerialDataReceivedEventHandler(SerialPort1_DataRecived);

        }

        public void Rs232SendData()
        {
            if (serialPort1.IsOpen == false)
            {
                MessageBox.Show("Bağlantı kurulmadı", "Hata", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                try
                {
                    serialPort1.Write(textBox1.Text.ToString());/* Datayı seri olarak gönder*/
                }
                catch (Exception)
                {
                    MessageBox.Show(this,"Bir Hata algılandı. Lütfen Daha sonra Tekrar deneyin", "Hata!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
        }

        public void Baud_value()
       {
           switch (comboBox1.SelectedIndex)
           {
               case 0:
                   baud = 1200;
                   break;
               case 1:
                   baud = 2400;
                   break;
               case 2:
                   baud = 4800;
                   break;
               case 3:
                   baud = 9600;
                   break;
               case 4:
                   baud = 1920;
                   break;
               case 5:
                   baud = 38400;
                   break;
               case 6:
                   baud = 57600;
                   break;
               case 7:
                   baud = 115200;
                   break;
           }  
       }

        private void dataSend_Click(object sender, EventArgs e)
        {
            Rs232SendData();
        }

        private void connect_Click(object sender, EventArgs e)
        {

            if (serialPort1.IsOpen == false)
            {
                Baud_value();
                   
                serialPort1.PortName = comboBox2.SelectedItem.ToString();
                serialPort1.BaudRate = baud;

                try
                {
                    serialPort1.Open();
                    connect.BackColor = Color.Red;
                    connect.ForeColor = Color.White;
                    connect.Text = "Durdur";
                    //serialPort1.DiscardInBuffer();
                    //serialPort1.DiscardOutBuffer();
                }
                catch (Exception)
                {
                    MessageBox.Show(this, "Bir Hata algılandı. Lütfen Daha sonra Tekrar deneyin", "Hata!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
            else
            {
                serialPort1.Close();
                connect.BackColor = Color.Green;
                connect.ForeColor = Color.White;
                connect.Text = "Baslat";

            }

        }

        public delegate void delegateG();

        private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
           RxText.BeginInvoke(new delegateG(guncelle));         
        }
        public void guncelle()
        {
            int yeni=0;
            int recived = serialPort1.ReadByte();

            if (recived != yeni)
            {
                yeni = recived;
                RxText.Text += recived.ToString();
            }
       
            if (RxText.TextLength==100)
            {
               RxText.Text="";
            }
        }

        private void label4_Click(object sender, EventArgs e)
        {

        }

        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == (char)13)
            {
                Rs232SendData();
            }
        }

        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            Baud_value();
            StreamWriter SW;
                SW=File.CreateText("Old_Value.txt");
                SW.WriteLine (baud.ToString());
                SW.Close();

        }

    }

}


Program orasıyla burasıya oynaya oynaya arap şaçına döndü :D Böyle böyle olacak..

Kullanılabilir port işinide öğrendim. Vitruvius un verdiği kod çalışıyor. Teşekkür ederim.

ArGeMaNiA

Tasarım penceresinde Form'a sağ tıklayıp Properties dedikten sonra Load'ın Form1_Load ile ilişkili
olup olmadığını kontrol edebilirsiniz.Belki yanlışlıkla silmişsinizdir.
Haydi göreyim sizi, vazife-i ubudiyetinizi unutmamak şartıyla öyle çalışınız ki,  rûy-i zemini, her tarafı herbirinize görülen ve her köşesindeki sesleri size işittiren bir bahçeye çeviriniz.

Mucit23

Merhaba
Geçen sefer fazla uğraşmadım şu form Load işine ama şimdi yine ihtiyacım oldu. Çözmem gerekiyor.
Form1 e sağ tıklayıp properties bölümüne baktığımda Load diye bir kısım göremedim. Formun Adı Form1 diye geçiyor.

Deneme açısında forma yine aşağıdaki gibi bir events ekledim

        private void Form1_Load(object sender, EventArgs e)
        {
            MessageBox.Show("çalıştı");
        }

Ne yapabilirim bu konuda..

Ömer KANAR

Anladığım kadarıyla siz elle kodluyorsunuz...Ama eksik kodluyorsunuz.
Tasarım penceresini kulllanın..
Bir tek saat, beş vakit namaza abdestle kâfi gelir.