folder Tahribat.com Forumları
linefolder C#, Asp.Net, .Net Core
linefolder C# Birden Fazle Replace İşlemi



C# Birden Fazle Replace İşlemi

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    coder2
    coder2's avatar
    Kayıt Tarihi: 15/Mart/2007
    Erkek

    Arkadaşlar ufak bir program için  klavyeden girilen değerleri alıyorum hook ile.  Yalnız şöyle bir sorun çıkıyor numelock bölümünde rakamları grdiğimde 1 yyerine a , 2 yerine b , 3 yerince c  şeklinde harfler çıkıyor.  

    Normal harfleri girince veya harf grubunun üstündeki rakamları girince doğru olarak sonuç alıyorum.   char ile değer aldım fakat yine de numelock ta ki rakamları girince   a , b c giri küçük harflerle dönüş sağlanıyor.  Bende replace ile  küçük a yerine 1 getir diyorum güzel şekilde çalışıyor. Fakat birden fazla replace kullanınca son replace yi alıyor ama ilki çalışmıyr..

    Aşağıdaki kod bölümünde c harfini 3 e çeviriyor fakat    b yi 2 ye döndürmüyor..  Bunu çözmek için tek satırda birden fazla replace kullanabilir miyim ya da replace dışında bir yol var mıdır ?

           string a;
     a = ((char)e.KeyValue).ToString().Replace("a","1");
     a = ((char)e.KeyValue).ToString().Replace("b", "2");
                a = ((char)e.KeyValue).ToString().Replace("c", "3");
                //   textBox1.Text += ((char)e.KeyValue).ToString().Replace("a","1" ,"b","2","c","3");
                textBox1.Text += a.ToString();

     

     

     

     

    form1 in tüm kodları bu sayfada =>  http://paste.ubuntu.com/13226270/


    Önceleri Kızlar Utanınca Kızarırdı Şimdilerde Kızarınca Utanıyorlar..
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    teamviewer ver hocam bakalım, şimdi biraz uygunum.. normalde 1,2,3 diye gelmemesi lazım. A nın ascii karşılığı 65 .. 

     


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Marsel
    crafty
    crafty's avatar
    Kayıt Tarihi: 19/Eylül/2006
    Erkek

    replace yapacaksan textbox u replace et niye key press den gelen değerleri replace ediyorsun ki? ayrıca her a tuşuna basıldığında 1 b için 2 c için 3 yazdıracaksan replace yerine if ya da select case yöntemi ile yapmak daha avantajlı değil mi?


    Kasnak yuvarlandı elek oldu, eski orospular melek oldu...
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek
    crafty bunu yazdı

    replace yapacaksan textbox u replace et niye key press den gelen değerleri replace ediyorsun ki? ayrıca her a tuşuna basıldığında 1 b için 2 c için 3 yazdıracaksan replace yerine if ya da select case yöntemi ile yapmak daha avantajlı değil mi?

    select de mantıklı değil hocam, bir dizi tamamlanır, 1. index e karşılık A değeri gelecek şekilde verilir..

    dizi = {"-","A","B","C" ..}

     

    dizi[(int)((char)e.KeyValue)]

    tarz bir şey ile dizi[1], A yı vermiş oluyor.. ama dediğim gibi bir yanlışlık var, a yerine 1 gelmemesi lazım


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ozgunlu
    ozgunlu's avatar
    Banlanmış Üye
    Kayıt Tarihi: 11/Kasım/2011
    Erkek

    (char)e.KeyValue bu ne olarak geliyor ?

    (char)e.KeyValue.ToString() bu ne olarak geliyor ?

     

    typecast illa char mı olmak zorunda (c# bilmediğimden), ascii değerleri mi geliyor ?


    Hello, i am nothing. I come from Neverland.
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    coder2
    coder2's avatar
    Kayıt Tarihi: 15/Mart/2007
    Erkek

    Cevap yazan arkadaşların hepsine teşekkür ederim.  Sağolsun unbalanced , pc ye bağlanıp sorunu halletti.  Kullanılan kodlar aşağıdadır , başkasına lazım olursa diye ekliyorum.

     

      private static char? karkter(KeyEventArgs e)
            {
                bool firstChance = false; ;
                byte[] keyStates = new byte[256];
                InputLanguage inputLanguage = InputLanguage.CurrentInputLanguage;
                const byte keyPressed = 0x80;
                keyStates[(int)((Keys)e.KeyCode & Keys.KeyCode)] = keyPressed;
                keyStates[(int)Keys.ShiftKey] = (((Keys)e.KeyCode & Keys.Shift) == Keys.Shift) ? keyPressed : (byte)0;
                keyStates[(int)Keys.ControlKey] = (((Keys)e.KeyCode & Keys.Control) == Keys.Control) ? keyPressed : (byte)0;
                keyStates[(int)Keys.Menu] = (((Keys)e.KeyCode & Keys.Alt) == Keys.Alt) ? keyPressed : (byte)0;
    
                StringBuilder sb = new StringBuilder(10);
                int ret = ToUnicodeEx((Keys)e.KeyCode, 0, keyStates, sb, sb.Capacity, 0, inputLanguage.Handle);
                if (ret == 1)
                    return sb[0];
    
                if (ret == -1)
                {
                    if (firstChance)
                    {
    
                    }
                    return null;
                }
                return null;
            }
            [DllImport("user32.dll", CharSet = CharSet.Unicode)]
            private static extern int ToUnicodeEx(Keys wVirtKey, uint wScanCode, byte[] lpKeyState, StringBuilder pwszBuff, int cchBuff, uint wFlags, IntPtr dwhkl);
            #endregion
    

     


    Önceleri Kızlar Utanınca Kızarırdı Şimdilerde Kızarınca Utanıyorlar..
Toplam Hit: 741 Toplam Mesaj: 6
replace