Ynt: uyarisi sorusu

Başlatan Karamel, 09 Temmuz 2015, 07:15:27

Karamel

merhaba. c# ogrenmeye basladim. visual basic 6.0 dan sonra biraz zor geldi. cunku visual basic te hersey hemencicik calisiveriyordu. c# minicik bir hatayi bile affetmiyor.

neyse. programimi exe yapmak istedim. megersem bin\debug icersinde kendisi exe olusturuyormus. ama bu exe calismadan once asagidaki gibi bir hata veriyor. continue diyince ilginc bir sekilde program kusursuz calisiyorda. bu hata neden cikiyor? nerede. kime yanlis yapmisiz?  :P




mesaj birleştirme:: 09 Temmuz 2015, 07:16:24

bu arada programimda serialport componenti var. serial port deneyi yapmistim.

justice_for_all

Programında bir dizi var ve onun elemanlarını kontrol et.indeksin dizi sınırlarını aşıyor diyor.
Deneyip de başaramayanları değil, yalnızca denemeye bile kalkışmayanları yargıla.   Gökhan Arslanbay

Karamel

Hocam neyi kastettiginizi anlayamadim....  :-\ bir ornek verebilirimisiniz?

XX_CİHAN_XX

Örneğin 10 elemanlı bir dizin var sen 11. olmayan elemanı kullanmaya çalışmışsın. gibi bir sorunun var...
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

justice_for_all

Kodu burada paylaşırsan daha çok yardımcı oluruz.
Deneyip de başaramayanları değil, yalnızca denemeye bile kalkışmayanları yargıla.   Gökhan Arslanbay

Karamel

#5
hocam sorunu buldum! sorun surada.

        private void Form1_Load(object sender, EventArgs e)
        {
             //serial com portlari listeliyoruz.
            string[] ports;
            int f;

            ports = SerialPort.GetPortNames(); 

            for(f=0; f<10; f++)comboBox1.Items.Add(ports[f]);
        }



string[] diyince uc belirtmedigimizden kiziyor.

icersine sayi yazinca kabul etmiyor. tirnaklari kaldirincada dogal olarak burasi comboBox1.Items.Add(ports[f]); hata veriyor. yukaridaki code lari silince. bin\debug icerinsdeki exe direkman calisiveriyor.

mesaj birleştirme:: 09 Temmuz 2015, 17:50:24

soyle denedim yine ayni sorunu aliyorum.

        private void Form1_Load(object sender, EventArgs e)
        {
             //serial com portlari listeliyoruz.
            string[] ports = new string[1000];
            int f;

            ports = SerialPort.GetPortNames(); 

            //for(f=0; f<10; f++)comboBox1.Items.Add(ports[f]);
            comboBox1.Items.Add(ports[0]);
            comboBox1.Items.Add(ports[1]);
            comboBox1.Items.Add(ports[2]);
            comboBox1.Items.Add(ports[3]);

        }




su tarz string[] ports = new string[1000]; bir tanimlama sanirim bu is icin uygun bir tanimlama değil

mesaj birleştirme:: 09 Temmuz 2015, 17:55:41

internetten su codelari buldum. daha simple ve calisiyor. ama hic birsey ogrenemedim. string e size da verdik. neden calismadi? asagidaki codelar nereden gedi?(cok yabancilar. mesela foreach nedir?)

foreach (string s in SerialPort.GetPortNames())
            {
                comboBox1.Items.Add(s);
            }

baran123

#6
Port isimlerini almaya çalışıyorsun sanırım.
https://msdn.microsoft.com/tr-tr/library/system.io.ports.serialport.getportnames(v=vs.110).aspx

senin hatan için
f kadar almana gerek yok dizi uzunluğu kadar alabilirsin
denedim sıkıntı yok bunda
private void Form1_Load(object sender, EventArgs e)
        {
            string[] PortNames = SerialPort.GetPortNames();

            for (int i = 0; i < PortNames.Length; i++)
                comboBox1.Items.Add(PortNames[i]);
        }


mesaj birleştirme:: 09 Temmuz 2015, 18:03:17

Foreach daha uygun bu iş için

"foreach bir dizinin içindeki tüm elemanları veya bir koleksiyon içinde tüm elemanların içinde dönebilmek için kullanılır."

Karamel

hocam bilgilendirmeniz icin tesekkur ederim.

programi run yapinca warning yada error seklinde hata vermiyor ama. debug file in icersindeki exe yi calistirmaya calisinca. sorun oluyor.

anladigim kadariyla benim c# ile olan iletisimim suan cok kotu. oncelikle onu anlamaliyim ki. onun anladigi dilden konusmaliyim. yoksa bircok hata ile bogusabilirim.

justice_for_all

       string[] data = new string[20]; 


        private void Form1_Load(object sender, EventArgs e)
        {

            data = System.IO.Ports.SerialPort.GetPortNames();
            Array.Sort(data);
           
            for (int sayi = 0; sayi < data.Length; sayi++)
            {
                comboBox1.Items.Add(data[sayi]);
            }

        }
Deneyip de başaramayanları değil, yalnızca denemeye bile kalkışmayanları yargıla.   Gökhan Arslanbay