İnteger + string ifade serialportla alma

Başlatan Bloodofvol, 31 Mart 2013, 20:26:44

Bloodofvol

Arkadaşlar son bir sorum olacaktı.
herhangi bir şekilde dizi kullanmadan "23.44,22.34,45.23....." gibi veriler alıorum.
split komutuyla yada visual basicde ki mid komutu tarzı bir komutla ilk virgülden sonrasını nasıl yazdırabilirim.
Yani verim "23.44,22.34,45.23" ise ben , gülden sonrasını yazdırmak istiorum herhangi bir şekilde dizi kullanmadan.

"22.34,45.23" gibi.
şimdiden teşekkürler.

muhittin_kaplan

instr komutunu kullanırım genelde ben. aradığın karanterin string içerisindeki yerini verir.
dim yer as integer
yer=instr(aramayapılacakString, ",")
dersensoldan sağa dolgu ilk virgül ün yerini verir.

sonrasında
textbox=mid(bölünecekString,yer,(bölünecekstring.leght-yer))
dersen bölünecek string i "yer" den başlayarak bölünecekstrin in uzunluğu kadar dan yer in çıkarılarak kalanı bulunur ve okadar alınır.

bölünecekstring="23.44,22.34,45.23"
yer=6 olur (instr den dönen değer)
bölünecekstring.leght=17
bölünecekstring.leght-yer=11

yani
textbox=mid(bölünecekString,yer,(bölünecekstring.leght-yer))
ile 6 dan başlayarak 11 karakteri textbox a atar.

.net de substring gibi fonksiyonlarda var. ben alışkanlıktan dolayı bunlarıda kullanabiliyorum..

Bloodofvol

Ama bunlar visual basic comutu deilmi.Bende bu şekilde kullandım visual basicde ama seri port kodlarında ssorun çıktı veriyi alamadım ve c# a geçtim oyuzden.Mid gibi bir komut bulamadım c# da  mid(string , 2) deyip stringde 2. haneden sonrasını yazdırsın yada baktıklarımı yanlış anlıyorum.

muhittin_kaplan

#18
c# ile vb.net arasında komut olarak "öyle büyük farklar" yoktur. Yukarda yazdıklarımı C# syntax ına göre yazarsanız çalışır.

mesaj birleştirme:: 09 Nisan 2013, 22:33:56

Alıntı yapılan: Bloodofvol - 09 Nisan 2013, 12:30:57
Ama bunlar visual basic comutu deilmi.Bende bu şekilde kullandım visual basicde ama seri port kodlarında ssorun çıktı veriyi alamadım ve c# a geçtim oyuzden.Mid gibi bir komut bulamadım c# da  mid(string , 2) deyip stringde 2. haneden sonrasını yazdırsın yada baktıklarımı yanlış anlıyorum.
Olmaz Mid Komutunun parametreleri
textebox=mid(AlıntıYapılacakString, AlıntınınBaşlayacağıNokta, AlıntınınNekadarUzunluktaOlacağı)

olarak 3 tanedir.

peko

Gelen datayı ne zaman nerde dinleyeceğin üstadlarımızın söylediği gibi çok önemli..

string Rdata = ReceiveData();

public string ReceiveData()
    {
        if (!this.mySerialPort.IsOpen)
            throw new Exception("Port not open.");

        try
        {
            StringBuilder result = new StringBuilder();

            if (mySerialPort.BytesToRead == 0)
            {
                int retries = 0;
                while (retries < 5)
                {
                    Thread.Sleep(150);
                    if (mySerialPort.BytesToRead > 0) break;
                    retries++;
                }
            }

            while (mySerialPort.BytesToRead > 0)
            {
                byte[] buffer = new byte[mySerialPort.BytesToRead];
                int numRead = mySerialPort.Read(buffer,0, buffer.Length);
                if (numRead != 0)
                    result.Append(Encoding.ASCII.GetString(buffer, 0, numRead));
                else
                    break;
                Thread.Sleep(150);
            }
            return result.ToString();
        }
        catch (TimeoutException)
        {
            return "";
        }
        catch (Exception ex)
        {
            throw new Exception(ex.Message, ex);
        }
" Bazıları zeka'sını iş'i zorlaştırmak için, bazıları ise kolaylaştırmak için kullanır.. "

Bloodofvol