- 構文
- UString = MORSE.encode( str )
- UString = MORSE.decode( str )
- 引数
- str
- エンコード・デコードする文字列(区切りは半角スペース)
- 戻値
- 変換した文字列
プログラム
//////////////////////////////////////////////////
// 【引数】
// str : エンコード・デコードする文字列(区切りは半角スペース)
// 【戻値】
// 変換した文字列
//////////////////////////////////////////////////
MODULE MORSE
HASHTBL code
PROCEDURE MORSE()
code["A"] = "・-"
code["B"] = "-・・・"
code["C"] = "-・-・"
code["D"] = "-・・"
code["E"] = "・"
code["F"] = "・・-・"
code["G"] = "--・"
code["H"] = "・・・・"
code["I"] = "・・"
code["J"] = "・---"
code["K"] = "-・-"
code["L"] = "・-・・"
code["M"] = "--"
code["N"] = "-・"
code["O"] = "---"
code["P"] = "・--・"
code["Q"] = "--・-"
code["R"] = "・-・"
code["S"] = "・・・"
code["T"] = "-"
code["U"] = "・・-"
code["V"] = "・・・-"
code["W"] = "・--"
code["X"] = "-・・-"
code["Y"] = "-・--"
code["Z"] = "--・・"
code["1"] = "・----"
code["2"] = "・・---"
code["3"] = "・・・--"
code["4"] = "・・・・-"
code["5"] = "・・・・・"
code["6"] = "-・・・・"
code["7"] = "--・・・"
code["8"] = "---・・"
code["9"] = "----・"
code["0"] = "-----"
code["."] = "・-・-・-"
code[","] = "--・・--"
code["?"] = "・・--・・"
code["--"] = "-・・・-"
code["-"] = "-・・・・-"
code["/"] = "-・・-・"
code["@"] = "・--・-・"
FOR n = 0 TO LENGTH(code)
code[code[n, HASH_VAL]] = code[n, HASH_KEY]
NEXT
FEND
FUNCTION encode(str)
DIM res = ""
FOR n = 1 TO LENGTH(str)
res = res + code[COPY(str, n, 1)] + " "
NEXT
RESULT = TRIM(res)
FEND
FUNCTION decode(str)
DIM res = ""
DIM arr = SPLIT(str, " ")
FOR n = 0 TO UBound(arr)
res = res + code[arr[n]]
NEXT
RESULT = res
FEND
ENDMODULE
//////////////////////////////////////////////////
// 【引数】
// 配列 : 上限値を求める配列
// 【戻値】
// 配列の上限値
//////////////////////////////////////////////////
FUNCTION UBound(array[])
RESULT = RESIZE(array)
FEND
この記事は役に立ちましたか?