From 4c3758e3b58b80b15ff9b651d25d7d8269ff7b17 Mon Sep 17 00:00:00 2001 From: ianhardrive Date: Sat, 20 Feb 2016 18:10:11 -0500 Subject: [PATCH] Add files via upload for Morse Code challange This was done as a console application in Visual C#. There is an interactive version and command line version. --- MorseCodeToEnglish.cs | 117 ++++++++++++++++++++++++++++++ MorseCodeToEnglish.exe | Bin 0 -> 7680 bytes MorseCodeToEnglishInteractive.cs | 113 +++++++++++++++++++++++++++++ MorseCodeToEnglishInteractive.exe | Bin 0 -> 7680 bytes 4 files changed, 230 insertions(+) create mode 100644 MorseCodeToEnglish.cs create mode 100644 MorseCodeToEnglish.exe create mode 100644 MorseCodeToEnglishInteractive.cs create mode 100644 MorseCodeToEnglishInteractive.exe diff --git a/MorseCodeToEnglish.cs b/MorseCodeToEnglish.cs new file mode 100644 index 0000000..5179bd6 --- /dev/null +++ b/MorseCodeToEnglish.cs @@ -0,0 +1,117 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.IO; + +namespace MorseCodeToEnglish +{ + public class Program + { + static void Main(string[] args) + { + //assumption is that the first argument is the file + string filename; + try + { + filename = args[0]; + } + catch + { + Console.WriteLine("no file specified"); + Console.ReadKey(); + return; + } + + filename = getFullPath(filename); + if (filename != "file not found") + { + translateMorseToEnglish(filename); + } + else + { + Console.WriteLine("file not found"); + Console.ReadKey(); + return; + } + return; + } + + private static void translateMorseToEnglish(string filename) + { + var MorseHashTable = new Dictionary(); + PopulateMorseHashTable(ref MorseHashTable); + IEnumerable lines; + string[] letters; + var outputline = new StringBuilder(); + + lines = System.IO.File.ReadLines(filename); + foreach (string line in lines) + { + outputline.Clear(); + letters = line.Replace("||", ",").Split(','); + foreach (string letter in letters) + { + outputline.Append(MorseHashTable[letter]); + } + Console.WriteLine(outputline); + } + } + + private static string getFullPath(string filename) + { // user can enter the full file path or the filename if it is in the current directory + string fullpath = "file not found"; + if (File.Exists(filename)) + { + fullpath = filename; + } + else if (System.IO.File.Exists(System.IO.Directory.GetCurrentDirectory() + filename)) + { + fullpath = System.IO.Directory.GetCurrentDirectory() + filename; + } + return fullpath; + } + + private static void PopulateMorseHashTable(ref Dictionary hashtable) + { + hashtable.Add("", " "); //blank returns space + hashtable.Add(".-", "a"); + hashtable.Add("-...", "b"); + hashtable.Add("-.-.", "c"); + hashtable.Add("-..", "d"); + hashtable.Add(".", "e"); + hashtable.Add("..-.", "f"); + hashtable.Add("--.", "g"); + hashtable.Add("....", "h"); + hashtable.Add("..", "i"); + hashtable.Add(".---", "j"); + hashtable.Add("-.-", "k"); + hashtable.Add(".-..", "l"); + hashtable.Add("--", "m"); + hashtable.Add("-.", "n"); + hashtable.Add("---", "o"); + hashtable.Add(".--.", "p"); + hashtable.Add("--.-", "q"); + hashtable.Add(".-.", "r"); + hashtable.Add("...", "s"); + hashtable.Add("-", "t"); + hashtable.Add("..-", "u"); + hashtable.Add("...-", "v"); + hashtable.Add(".--", "w"); + hashtable.Add("-..-", "x"); + hashtable.Add("-.--", "y"); + hashtable.Add("--..", "z"); + hashtable.Add("-----", "0"); + hashtable.Add(".----", "1"); + hashtable.Add("..---", "2"); + hashtable.Add("...--", "3"); + hashtable.Add("....-", "4"); + hashtable.Add(".....", "5"); + hashtable.Add("-....", "6"); + hashtable.Add("--...", "7"); + hashtable.Add("---..", "8"); + hashtable.Add("----.", "9"); + } + } +} diff --git a/MorseCodeToEnglish.exe b/MorseCodeToEnglish.exe new file mode 100644 index 0000000000000000000000000000000000000000..cd6fb0ad32bceba586aae40b3e240e157d8a24da GIT binary patch literal 7680 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 S8`ENR@;%<5J}Uor8TdEvxYor0 literal 0 HcmV?d00001 diff --git a/MorseCodeToEnglishInteractive.cs b/MorseCodeToEnglishInteractive.cs new file mode 100644 index 0000000..4da5c25 --- /dev/null +++ b/MorseCodeToEnglishInteractive.cs @@ -0,0 +1,113 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.IO; + +namespace MorseCodeToEnglishInteractive +{ + class Program + { + static void Main(string[] args) + { + Console.WriteLine("Please enter the filename or full path (exit to quit): "); + string filename = Console.ReadLine(); + + while (filename.ToLower() != "exit") + { + filename = getFullPath(filename); + if (filename != "file not found") + { + translateAndOutput(filename); + } + else + { + Console.WriteLine(""); + Console.WriteLine("file not found"); + } + Console.WriteLine(""); + Console.WriteLine("Please enter the filename or full path (exit to quit): "); + filename = Console.ReadLine(); + } + } + + private static void translateAndOutput(string filename) + { + var MorseHashTable = new Dictionary(); + PopulateMorseHashTable(ref MorseHashTable); + IEnumerable lines; + string[] letters; + var outputline = new StringBuilder(); + + Console.WriteLine("Output:"); + + lines = System.IO.File.ReadLines(filename); + foreach (string line in lines) + { + outputline.Clear(); + letters = line.Replace("||", ",").Split(','); + foreach (string letter in letters) + { + outputline.Append(MorseHashTable[letter]); + } + Console.WriteLine(outputline); + } + } + + private static string getFullPath(string filename) + { // user can enter the full file path or the filename if it is in the current directory + string fullpath = "file not found"; + if (File.Exists(filename)) + { + fullpath = filename; + } + else if (System.IO.File.Exists(System.IO.Directory.GetCurrentDirectory() + filename)) + { + fullpath = System.IO.Directory.GetCurrentDirectory() + filename; + } + return fullpath; + } + + private static void PopulateMorseHashTable(ref Dictionary hashtable) + { + hashtable.Add("", " "); //blank returns space + hashtable.Add(".-", "a"); + hashtable.Add("-...", "b"); + hashtable.Add("-.-.", "c"); + hashtable.Add("-..", "d"); + hashtable.Add(".", "e"); + hashtable.Add("..-.", "f"); + hashtable.Add("--.", "g"); + hashtable.Add("....", "h"); + hashtable.Add("..", "i"); + hashtable.Add(".---", "j"); + hashtable.Add("-.-", "k"); + hashtable.Add(".-..", "l"); + hashtable.Add("--", "m"); + hashtable.Add("-.", "n"); + hashtable.Add("---", "o"); + hashtable.Add(".--.", "p"); + hashtable.Add("--.-", "q"); + hashtable.Add(".-.", "r"); + hashtable.Add("...", "s"); + hashtable.Add("-", "t"); + hashtable.Add("..-", "u"); + hashtable.Add("...-", "v"); + hashtable.Add(".--", "w"); + hashtable.Add("-..-", "x"); + hashtable.Add("-.--", "y"); + hashtable.Add("--..", "z"); + hashtable.Add("-----", "0"); + hashtable.Add(".----", "1"); + hashtable.Add("..---", "2"); + hashtable.Add("...--", "3"); + hashtable.Add("....-", "4"); + hashtable.Add(".....", "5"); + hashtable.Add("-....", "6"); + hashtable.Add("--...", "7"); + hashtable.Add("---..", "8"); + hashtable.Add("----.", "9"); + } + } +} diff --git a/MorseCodeToEnglishInteractive.exe b/MorseCodeToEnglishInteractive.exe new file mode 100644 index 0000000000000000000000000000000000000000..9c7b35801b9d958745e78bf86fa86dd05b11f050 GIT binary patch literal 7680 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 literal 0 HcmV?d00001