• 締切済み

ドラクエの「復活の呪文」的なものをVB.NETで!!

例えばTextBox1とButtonBox1を作っておき、ButtonBox1を押すたびにTextBox1に「5a62V」とか「hju44afg9」といったような、英数字混合のランダムな文字列が現れるようにするには、どのようにしたらいいですかね?ま、あまり文字数多くても大変なので、5文字から8文字の間とかですね。 ちなみにドラクエのサイトは必要ありませんので、あしからず。VB.NETではどうしたらできるのか?という話です。 どうぞよろしくお願いします。

  • DT50
  • お礼率95% (504/530)

みんなの回答

  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.4

Microsoft.VisualBasicは名前空間のことです。 VB.NETになって従来のVBとは大幅に仕様が変わっており、VB時代の関数を使うならMicrosoft.VisualBasicのクラスに所属する○○という風に指定してあげる必要があるだけです。 LeftやRightなどの文字列を操作する関数なら.Net風だとSubstringというのも別途用意されています。どちらを使うかは好みです。 またSubstring関数にしても正式に書くならSystem.String クラスの Substring という風に書くことになりますが、名前空間は最初に宣言してしまえば省略することもできます(System.Stringはデフォで省略可能になっています)。これはMicrosoft.VisualBasicでも同様に省略できます。 要は、ただの田中さんだとどこの人だと分からないから正式に呼ぶなら3年2組の田中さんと呼ぶことにしましょう。ただし毎回毎回そう呼ぶのも面倒だから、ここで田中さんといえば3年2組の田中さんということにしておきましょうねと最初にルール作りすることも出来ますというのがVB.Netのお約束事ということです。

DT50
質問者

お礼

ご回答ありがとうございます。

  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.3

>「Microsoft.VisualBasic.」 このような表現はVB.NETからです。 その前は普通に CHRやLEFTやRightが使えていたのですがNETからそのようになりました。多分 Javaに パクられたくないので登録商標が付いているのでしょう。

DT50
質問者

お礼

登録商標でしたか。どうもありがとうございました。

  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.2

取り敢えず一例です。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim r1 As New Random Dim r2 As New Random Dim L As Integer Dim i As Integer Dim j As Integer Dim k As String L = r2.Next(6, 8) TextBox1.Clear() For j = 1 To L i = r1.Next(48, 83)   If i > 57 Then     i = i + 7    k = Microsoft.VisualBasic.Chr(i)    k = k.ToLower   Else   k = Microsoft.VisualBasic.Chr(i)    End If TextBox1.Text = TextBox1.Text + k Next End Sub

DT50
質問者

お礼

ご回答ありがとうございます。なるほどぉ。試してみますね!

DT50
質問者

補足

すみません!!! 質問なんですが、「k = Microsoft.VisualBasic.Chr(i) 」の部分の「Microsoft.VisualBasic.」って、どういう意味ですか?関数ですか?自分はこういうコードは見たことがありません。不慣れなので、教えて頂ければ幸いです。

回答No.1

ハッシュ値ではどうでしょうか?

DT50
質問者

お礼

さっそくのご回答ありがとうございます。自分はランダム関数を使おうかと思っていました。ハッシュ値って聞いたことありますが、難しそうですね。それは使用したことがない関数(?)なので…。 私目は大した知識がないくせに「復活の呪文の初歩的なものはVB.NETでどうプログラミングするのか?」って疑問が浮かびました。プログラム例の投稿もお待ちしておりますので、どうかよきアドバイスをお願いいたします!

関連するQ&A

  • VB.NETで16進数が正しいかどうかの判定方法を教えて

    VB.NETなのですが、String型に入ってる文字列が 数字とA~Fのみの16進数の値であるかどうかを判別するには どのようにしたら良いでしょうか? よろしくお願いいたします。

  • VB.NETのテキストボックスで、カーソル位置に文字を入れたいのですが、どうすればいいのでしょうか

    VB.NET作っています。 System.Web.UIWebControls.TextBoxで、 ボタンを押すとテキストボックスのカーソル位置に文字列を入れたいのですが、どうやってやればいいのでしょうか? おしえてくださいーー

  • VB2010 TextBoxの文字列に正しく入力されないのは何故ですか

    VB2010 TextBoxの文字列に正しく入力されないのは何故ですか? string型の変数に文字列を入れ、TextBox.Textに代入すると文字列の後ろが切れてしまう。 Dim st As String st="s01114DG000555<0?e09" TextBox.Text = st この場合、TextBox.Textには"s01114DG000555<0"となり、後ろの4文字が切れてしまっている。 ちなみに、 TextBox.Text = "s01114DG000555<0?e09" とすると、正常に全文字数が入る。 半角文字列の塊なのに、どうしてこのようなことが起きるのでしょうか? また、これの対応策は何ですか? 以上、よろしくお願いします。

  • VB.NETでの時間計算

    いつもお世話になっております。 VB.NETに関しての初歩的な質問です。 TextBox1.Text「0900」 TextBox2.Text「1030」 などと4桁の文字列を入力して、時間を計算したいのです。 早い話、ある作業にどれくらいの時間を費やしたかを計算したいのです。 各項目毎に計算して、それぞれの集計もしたいと思っています。 上記のやり方だと何となくうまくいかないような気がするのですが、 一般的に利用されている方法があれば教えて頂きたいと思います。 初歩的な質問で大変恐縮ですが、 よろしくお願い致します。

  • エクセルで同じ文字を削除する

    同じ列に「1-22-33A-2-21」というような数字が入ってます。 このハイフンだけを取り出して「12233A221」にするにはどうすればいいですか? 英数字はランダムですが、文字の数は同じで、ハイフンの場所は一致しています。

  • TextBoxの文字がかけてしまうのですが VB.NET

    VB.NET FrameWork1.1の環境なのですが、 Declare Function WritePrivateProfileString Lib "KERNEL32.DLL" Alias "WritePrivateProfileStringA" ( _ ByVal lpAppName As String, _ ByVal lpKeyName As String, _ ByVal lpString As String, _ ByVal lpFileName As String) As Integer このAPIを使ってファイルに文字列を記録しているのですが、 TextBoxに表示したファイルのフルパスを記録すると このAPIを使った直後にそのTextBoxの文字の後半が欠けてしまいます。 短いパス名なら大丈夫なのですが、長いパス名の場合に欠けてしまいます。 試しに Dim a As String = TextBox1.Text WritePrivateProfileString("TextBox", "1", a, FileName) Console.WriteLine(a) としても同じく欠けてしまいます。 変数aの宣言の型をString ではなく Object にすると 欠けなくなるのですが、変数aやTextBoxの内容は読み取った だけなのになぜ書き換えられてしまうのでしょうか? どの場合でもファイルへの記録は正常に出来ています。 何か問題点などありましたらご教授いただけると助かります。

  • VB.NET LeftBの代用

    こんにちわ。 文字列を、バイト数でカットしたいのですが、方法がわかりません。 例えば、 "1あ2い3う4え5お"という文字列があるとすると この文字列の4バイト分の"1あ2"を取り出したい と言ったケースです。 ヘルプを調べたら、 LeftB,MidB,RightBの関数は、VB.NETから、 文字列が、Unicodeの2バイト扱いになるので、 サポートされていないと記述されていました。 LeftB関数と同じような事を、VB.NETでも行いたいです。 どなたか、アドバイスお願致します。

  • VB6.0の「vbFromUnicode」はVB.NETではどれに相当しますか?

    VB6.0で、例:StrConv(Text, vbFromUnicode)とかで使用する、 「vbFromUnicode」(文字列を Unicode からシステムの既定のコードページに変換する) は、VB.NETでは使用できないようです。(相当する定数はない?) 「vbFromUnicode」と同等の機能を、VB.NETで使用したいのですが、 どうすれば良いでしょうか?

  • vb.netの問題で悩んでいます。

    vb.netで、このような問題が出て苦戦しています。 次のようなフォームを作成してください。 データAのテキストボックスには、文字列を、データBには回数を入れ、表示ボタンを押したときに文字列を回数分つないだものがメッセージボックスに表示される。(AにxyzでBに3ならばxyzxyzxyzと表示される) フォームは作成できました。肝心のプログラムが全然書けません。片方はstring 片方はintegerというくらいしか。。教えてください。

  • VB2010の TextBox文字について の 質問

    VB2010の TextBox文字について の 質問 お尋ねします VB2010_Express版で プログラムを作っている者です Form1にTextBox1を貼付け、 そのTextBox内に 複数行に別けて 文字を記入します しかしDebug開始=run を すると、 TextBox内の文字列の背景が暗転し、 TextBoxのBackColorの色の上に 表示してくれません 念のために BackColorは薄黄色[MS 255 255 192 ]で、 ForeColorは 焦茶色の[Web Maroon]です runさせた後の 文字表記位置に 各文字ごとに 青色のBackColorが 現れ、 即ち、青色の枡目ごとに 焦茶色の 文字列が 現れ、 ForeColorの薄黄色の上に焦茶色の文字が 出てくれません そうして Form1.Designer.VB の コマンド群を眺めても、 TextBox1の プロパティウィンドウ を 見て廻っても、 それらを変更しそうなコマンド文や項目が 判らないのです 文字位置の背景色が青色に変らずに、指定したBackColor上で表示させるには、 どうしたら良いのか、お教え下さい 宜しくお願い申し上げます ____ akqsp より ____