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.