更换字符期间莫尔斯电码相当于搅乱文本框 [英] Replacing the character period to morse code equivalent messes up the TextBox

查看:144
本文介绍了更换字符期间莫尔斯电码相当于搅乱文本框的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想所有的字符替换他们的莫尔斯电码当量。我用了textBlock.Text.Replace()方法来做到这一点,直到我达到了句号它工作得很好。当我试着使用来取代它。 - 。-.-,它工作正常,但所有其它字符现在都搞砸了。句号之前,一切都很好。



下面的代码



 命名空间PivotApp1 
{
酒店的公共部分类Textmorse:的PhoneApplicationPage
{



公共字符串[] aakkoset = {A,b,C, D,E,
F,G,H,I,J,
的K,L,M,N ,O,
P,Q,R,S,T,
的U,V,W,X, Y,
的Z,A,O,0,1,
2,3,4,5,6 ,
7,8,9,?:,
,,@,/,=,,
}。

公共字符串[]莫尔斯= {.-,-...,-.-。, - 。。,
。 .-, - ,...,...,---,
-.-,.- .., - , - , - ,
- ,--.-,.-,..., - ,
..-,...-, - ,-..-,-.--,
- ..,。-.- ,---,-----,----,
..---,...--,.... - ,...,-....,
--...,--- ..,----,.. - ..,---...,
-....-, - 。.-,-..-,-... - ,,
。 - -.-};

公共Textmorse()
{

的InitializeComponent();

}

私人无效TBoxText1_TextChanged(对象发件人,TextChangedEventArgs E)
{

CreateMorseText();

}
公共无效CreateMorseText()
{
tBlockMorse1.Text = TBoxText1.Text.ToUpper()
.Replace(aakkoset [0]莫尔斯[0])
.Replace(aakkoset [1],莫尔斯[1])$ ​​b $ b .Replace(aakkoset [2],莫尔斯[2])
.Replace(aakkoset [3]莫尔斯[3])
.Replace(aakkoset [4],莫尔斯[4])
.Replace(aakkoset [5],莫尔斯[5])
.Replace(aakkoset [6 ],莫尔斯[6])
.Replace(aakkoset [7],莫尔斯[7])
.Replace(aakkoset [8],莫尔斯[8])
.Replace(aakkoset [ 9],莫尔斯[9])
.Replace(aakkoset [10],莫尔斯[10])
.Replace(aakkoset [11],莫尔斯[11])$ ​​b $ b .Replace(aakkoset [12],莫尔斯[12])
.Replace(aakkoset [13],莫尔斯[13])
.Replace(aakkoset [14],莫尔斯[14])
.Replace( aakkoset [15],莫尔斯[15])
.Replace(aakkoset [16],莫尔斯[16])
.Replace(aakkoset [17],莫尔斯[17])
.Replace (aakkoset [18],莫尔斯[18])
.Replace(aakkoset [19],莫尔斯[19])
.Replace(aakkoset [20],莫尔斯[20])
。更换(aakkoset [21],莫尔斯[21])$ ​​b $ b .Replace(aakkoset [22],莫尔斯[22])
.Replace(aakkoset [23],莫尔斯[23])
.Replace(aakkoset [24],莫尔斯[24])
.Replace(aakkoset [25],莫尔斯[25])
.Replace(aakkoset [26],莫尔斯[26])
.Replace(aakkoset [27],莫尔斯[27])
.Replace(aakkoset [28],莫尔斯[28])
.Replace(aakkoset [29],莫尔斯[29])
.Replace(aakkoset [30],莫尔斯[30])
.Replace(aakkoset [31],莫尔斯[31])$ ​​b $ b .Replace(aakkoset [32],莫尔斯[32])
.Replace(aakkoset [33],莫尔斯[33])
.Replace(aakkoset [34],莫尔斯[34])
.Replace(aakkoset [35],莫尔斯[35])
.Replace(aakkoset [36],莫尔斯[36])
.Replace(aakkoset [37],莫尔斯[37])
.Replace(aakkoset [38],莫尔斯[38] )
.Replace(aakkoset [39],莫尔斯[39])
.Replace(aakkoset [40],莫尔斯[40])
.Replace(aakkoset [41],莫尔斯[41 ])
.Replace(aakkoset [42],莫尔斯[42])
.Replace(aakkoset [43],莫尔斯[43])
.Replace(aakkoset [44],莫尔斯[ 44])
.Replace(aakkoset [45],莫尔斯[45]);
}

私人无效TBoxText1_Loaded(对象发件人,RoutedEventArgs E)
{
TBoxText1.Focus();
}
}
}


解决方案

我会动议期间替换 .Replace(aakoset [45],莫尔斯[45])开头。



什么是可能发生的事情是,你在DITS(周期)和连字符替换所有的字符,当期得到的替代,它认为所有的资讯科技署署长为句点。


I'm trying to replace all of the characters to their morse code equivalents. I used the textBlock.Text.Replace() method to accomplish this and it worked fine until I reached the period character. When I try to replace it with ".-.-.-", it works fine BUT all of the other characters are now messed up. Before the period character, everything worked great.

Here's the code

namespace PivotApp1
    {
        public partial class Textmorse : PhoneApplicationPage
        {



            public string[] aakkoset = { "A", "B", "C", "D", "E", 
                                         "F", "G", "H", "I", "J", 
                                         "K", "L", "M", "N", "O", 
                                         "P", "Q", "R", "S", "T", 
                                         "U", "V","W", "X", "Y", 
                                         "Z", "Ä", "Ö", "0", "1", 
                                         "2", "3", "4", "5", "6", 
                                         "7", "8", "9", "?", ":",
                                         ",", "@", "/", "=", " ",
                                         "."};

            public string[] morse = { ".-  ", "-...  ", "-.-.  ", "-..  ", ".  ", 
                                      "..-.  ", "--.  ", "....  ", "..  ", ".---  ", 
                                      "-.-  ", ".-..  ", "--  ", "-.  ", "---  ", 
                                      ".--.  ", "--.-  ", ".-.  ", "...  ", "-  ", 
                                      "..-  ", "...-  ", ".--  ", "-..-  ", "-.--  ", 
                                      "--..  ", ".-.-  ", "---.  ", "-----  ", ".----  ", 
                                      "..---  ", "...--  ", "....-  ", ".....  ", "-....  ", 
                                      "--...  ", "---..  ","----.  ", "..--..  ", "---...  ",
                                      "-....-  ", ".--.-.  ", "-..-.  ", "-...-  ", "  ", 
                                      ".-.-.-"};

            public Textmorse()
            {

                InitializeComponent();

            }

            private void TBoxText1_TextChanged(object sender, TextChangedEventArgs e)
            {

                CreateMorseText();

            }
            public void CreateMorseText() 
            {
                tBlockMorse1.Text = TBoxText1.Text.ToUpper()
                    .Replace(aakkoset[0], morse[0])
                    .Replace(aakkoset[1], morse[1])
                    .Replace(aakkoset[2], morse[2])
                    .Replace(aakkoset[3], morse[3])
                    .Replace(aakkoset[4], morse[4])
                    .Replace(aakkoset[5], morse[5])
                    .Replace(aakkoset[6], morse[6])
                    .Replace(aakkoset[7], morse[7])
                    .Replace(aakkoset[8], morse[8])
                    .Replace(aakkoset[9], morse[9])
                    .Replace(aakkoset[10], morse[10])
                    .Replace(aakkoset[11], morse[11])
                    .Replace(aakkoset[12], morse[12])
                    .Replace(aakkoset[13], morse[13])
                    .Replace(aakkoset[14], morse[14])
                    .Replace(aakkoset[15], morse[15])
                    .Replace(aakkoset[16], morse[16])
                    .Replace(aakkoset[17], morse[17])
                    .Replace(aakkoset[18], morse[18])
                    .Replace(aakkoset[19], morse[19])
                    .Replace(aakkoset[20], morse[20])
                    .Replace(aakkoset[21], morse[21])
                    .Replace(aakkoset[22], morse[22])
                    .Replace(aakkoset[23], morse[23])
                    .Replace(aakkoset[24], morse[24])
                    .Replace(aakkoset[25], morse[25])
                    .Replace(aakkoset[26], morse[26])
                    .Replace(aakkoset[27], morse[27])
                    .Replace(aakkoset[28], morse[28])
                    .Replace(aakkoset[29], morse[29])
                    .Replace(aakkoset[30], morse[30])
                    .Replace(aakkoset[31], morse[31])
                    .Replace(aakkoset[32], morse[32])
                    .Replace(aakkoset[33], morse[33])
                    .Replace(aakkoset[34], morse[34])
                    .Replace(aakkoset[35], morse[35])
                    .Replace(aakkoset[36], morse[36])
                    .Replace(aakkoset[37], morse[37])
                    .Replace(aakkoset[38], morse[38])
                    .Replace(aakkoset[39], morse[39])
                    .Replace(aakkoset[40], morse[40])
                    .Replace(aakkoset[41], morse[41])
                    .Replace(aakkoset[42], morse[42])
                    .Replace(aakkoset[43], morse[43])
                    .Replace(aakkoset[44], morse[44])
                    .Replace(aakkoset[45], morse[45]);        
            }

            private void TBoxText1_Loaded(object sender, RoutedEventArgs e)
            {
                TBoxText1.Focus();
            }
        }
    }

解决方案

I would move the period replace .Replace(aakoset[45], morse[45]) to the beginning.

What is likely happening is that you're replacing all your characters with dits (periods) and dashes, and the when the "period" get's replace, it sees all your "dits" as periods.

这篇关于更换字符期间莫尔斯电码相当于搅乱文本框的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆