F ve Q Klavye Karşılıkları

UgurOnline

Asistan
Katılım
11 Aralık 2008
Mesajlar
159
Reaksiyon puanı
1
Puanları
0
konuyu buraya açmam doğrudur umarım. bir barkod programı yazdım, programın kullanılacağı bilgisayarda F klavye bulunuyor. barkodu aletle okuttuğumuz zaman textbox'a Q ye çevirip yazıyor. windowsun dil ayarlarından biostan falan baya bi uğraştık beceremedik. bende textboxun textchanced olayına convert işlemi yapmak istiyorum. acaba F tuşlarının Q'ya karşılığını gösteren dökümanı olan varmı? tek tek yapabilirim ama sıfır hata olsun istiyorum. ayrıca özel karakterlerde falan sorun olurmu acaba?

teşekkürler
 

UgurOnline

Asistan
Katılım
11 Aralık 2008
Mesajlar
159
Reaksiyon puanı
1
Puanları
0
şöyle birşey yaptım ama problem var. örneğin F yazdığımız zaman Q ya çeviriyor, ama Q'yü da gidip Ğ'ye çeviriyor ardarda işlem yapıyor. bunu önlemenin bir yolu varmıdır? yaparsak sorun kalmıcak

yardımlarınızı bekliyorum

Kod:
           string yazi = textBox1.Text;

            yazi = yazi.Replace("F", "Q");
            yazi = yazi.Replace("G", "W");
            yazi = yazi.Replace("Ğ", "E");
            yazi = yazi.Replace("I", "R");
            yazi = yazi.Replace("O", "T");
            yazi = yazi.Replace("D", "Y");
            yazi = yazi.Replace("R", "U");
            yazi = yazi.Replace("N", "I");
            yazi = yazi.Replace("H", "O");
            yazi = yazi.Replace("P", "P");
            yazi = yazi.Replace("Q", "Ğ");
            yazi = yazi.Replace("W", "Ü");

            yazi = yazi.Replace("U", "A");
            yazi = yazi.Replace("İ", "S");
            yazi = yazi.Replace("E", "D");
            yazi = yazi.Replace("A", "F");
            yazi = yazi.Replace("Ü", "G");
            yazi = yazi.Replace("T", "H");
            yazi = yazi.Replace("K", "J");
            yazi = yazi.Replace("M", "K");
            yazi = yazi.Replace("L", "L");
            yazi = yazi.Replace("Y", "Ş");
            yazi = yazi.Replace("Ş", "İ");

            yazi = yazi.Replace("J", "Z");
            yazi = yazi.Replace("Ö", "X");
            yazi = yazi.Replace("V", "C");
            yazi = yazi.Replace("C", "V");
            yazi = yazi.Replace("Ç", "B");
            yazi = yazi.Replace("Z", "N");
            yazi = yazi.Replace("S", "M");
            yazi = yazi.Replace("B", "Ö");

            textBox4.Text = yazi;
 

N3CAT1

Dekan
Emektar
Katılım
20 Nisan 2008
Mesajlar
6,608
Reaksiyon puanı
144
Puanları
243
Anlamadım. Biraz daha açabilir misin?
 
Katılım
31 Aralık 2007
Mesajlar
17,485
Reaksiyon puanı
189
Puanları
243
Bilgisayarda sadece F klavye ayarı kurulu olsun. Q klavye ayarını silin. Sorun yaratmayacaktır...
 

UgurOnline

Asistan
Katılım
11 Aralık 2008
Mesajlar
159
Reaksiyon puanı
1
Puanları
0
daha öncede bahsetmiştiniz sildiğim halde istediğim olmuyor. tek çözüm olarak karakterleri replace etmeyi düşündüm. ondada satır satır kontrol ediyor işte problem burada :s
 

mjsamet

Asistan
Katılım
22 Aralık 2009
Mesajlar
149
Reaksiyon puanı
1
Puanları
0
UgurOnline arkadaşım koduna baktığım zaman dediğin ters olayın olması normaldir:). O yüzden önerim şu olur:


Kod:
string[] FKlavye = new string[]{"F","G","Ğ","I","O","D","R","N","H","P","Q","W","U","İ","E","A","Ü","T","K","M","L","Y","Ş","J","Ö","V","C","Ç","Z","S","B"};
for(int i = 0; i < textBox1.Text.Length; i++)
{
 string yazi = textBox1.Text[i];
 int nd = FKlavye.IndexOf(yazi);
if(nd>=0) textBox1.Text[i] = FKlavye[nd];
}

Kafede olduğumdan dolayı yazım hataları olabilir. VE Dizi olmazsa String List kullanırsın.(IndexOf için). Kodu haliyle test de edemedim ama yapmak istediğimi anladıysan geri kalanını da halledebilirsin.
 

UgurOnline

Asistan
Katılım
11 Aralık 2008
Mesajlar
159
Reaksiyon puanı
1
Puanları
0
string int tanımlamalarında falan hata veriyor en zayıf olduğum konuda bu zaten. uğraşıyorum çözmek için =)
 

mjsamet

Asistan
Katılım
22 Aralık 2009
Mesajlar
149
Reaksiyon puanı
1
Puanları
0
Eski cevabımda baya bir hata yapmışım. Nede olsa imkanlar sınırlıydı.
Şimdi evdeyim ve koda daha rahat bakabildim ve bir çözüm geliştirdim.
Kod:
string[] FKlavye = new string[] { "F", "G", "Ğ", "I", "O", "D", "R", "N", "H", "P", "Q", "W", "U", "İ", "E", "A", "Ü", "T", "K", "M", "L", "Y", "Ş", "J", "Ö", "V", "C", "Ç", "Z", "S", "B" };
            List<string> FF = new List<string>(FKlavye.AsEnumerable<string>());
            string[] QKlavye = new string[] { "Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P", "Ğ", "Ü", "A", "S", "D", "F", "G", "H", "J", "K", "L", "Ş", "İ", "Z", "X", "C", "V", "B", "N", "M", "Ö" };
            for (int i = 0; i < textBox1.Text.Length; i++)
            {
                string yazi = textBox1.Text[i].ToString();
                int nd = FF.IndexOf(yazi);
                if (nd >= 0)
                {
                    textBox1.Text = textBox1.Text.Remove(i, 1).Insert(i, QKlavye[nd]);
                }
            }
            FF.Clear();
 
Üst