Untitled
unknown
plain_text
2 years ago
2.2 kB
6
Indexable
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. ; #Warn ; Enable warnings to assist with detecting common errors. SendMode Input ; Recommended for new scripts due to its superior speed and reliability. SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory. ; define the Morse code alphabet MorseAlphabet := { 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: "--..", "1": ".----", "2": "..---", "3": "...--", "4": "....-", "5": ".....", "6": "-....", "7": "--...", "8": "---..", "9": "----.", "0": "-----", " ": " ", } ; define the text-to-Morse code conversion function TextToMorse(text) { morseText := "" Loop, Parse, text { char := A_LoopField morseChar := MorseAlphabet[char] morseText .= morseChar } return morseText } ; define the Morse code-to-text conversion function MorseToText(morse) { text := "" Loop, Parse, morse, ` ` { morseChar := A_LoopField char := "" Loop, % MorseAlphabet.MaxIndex() { if (MorseAlphabet[A_Index] = morseChar) { char := A_Index break } } text .= char } return text } ; create a GUI window Gui, Add, Text,, Enter text or Morse code: Gui, Add, Edit, vInput Gui, Add, Button, Default, Convert Gui, Add, Text,, Converted text or Morse code: Gui, Add, Edit, vOutput ReadOnly Gui, Show ; define the GUI event loop GuiEvent: input := GuiControlGet(Input) output := "" if (input = "") { output := "Please enter some text or Morse code." } else if (RegExMatch(input, "[^-. ]")) { output := TextToMorse(input) } else { output := MorseToText(input) } Gui
Editor is loading...