掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
シーザー式暗号解読の必要なコードは? (ID:140994)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
完全な文字テストとかをしたわけじゃないんですが、スタディ代わりに作ってみました。 一応私の考えどおりに動きます。 動作させるためにフォームなどは適当に作ってください。 メインフレーム(Form1) ボタン2つ(Button1、Button2) テキストボックス4つ(Text1〜Text4)です。 public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim Hira As String Dim Counter As Integer Dim zure As Integer Hira = Text1.Text Counter = Len(Hira) zure = Val(Text3.Text) Text4.Text = "正常" Dim Ango As String Ango = "" For i = 1 To Counter '入力用の文字列を1文字ずつ処理します。 Dim Code As Integer If False = Char.IsLetter(Mid(Hira, i, 1)) Then Text4.Text = "a-Zを指定してください" : Exit Sub Code = Asc(Mid(Hira, i, 1)) + zure 'Mid関数で1文字ずつ入力文字列を取り出し、その文字コードを得てオフセットの分ずらします。それをCodeに入れます。 ' アスキーコード値オーバー If Code > Asc("Z") And Code < Asc("a") Then Code += Asc("a") - Asc("Z") - 1 If Code > Asc("z") Then Code -= Asc("z") - Asc("A") + 1 Ango += Chr(Code) 'AngoにずらしたCodeを付け加えます。 Next i Text2.Text = Ango End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim Ango As String Dim Counter As Integer Dim zure As Integer Dim Hira As String Ango = Text2.Text Counter = Len(Ango) zure = Val(Text3.Text) Hira = "" For i = 1 To Counter Dim Code As Integer If False = Char.IsLetter(Mid(Ango, i, 1)) Then Text4.Text = "a-Zを指定してください" : Exit Sub Code = Asc(Mid(Ango, i, 1)) - zure 'Mid関数で1文字ずつ入力文字列を取り出し、その文字コードを得てオフセットの分ずらします。それをCodeに入れます。 ' アスキーコード値オーバー If Code > Asc("Z") And Code < Asc("a") Then Code -= Asc("a") - Asc("Z") - 1 If Code < Asc("A") Then Code += Asc("z") - Asc("A") + 1 Hira = Hira.Insert(Len(Hira), Chr(Code)) 'AngoにずらしたCodeを付け加えます。 Next i Text1.Text = Hira End Sub End Class
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.