- 締切済み
ドラクエの「復活の呪文」的なものをVB.NETで!!
例えばTextBox1とButtonBox1を作っておき、ButtonBox1を押すたびにTextBox1に「5a62V」とか「hju44afg9」といったような、英数字混合のランダムな文字列が現れるようにするには、どのようにしたらいいですかね?ま、あまり文字数多くても大変なので、5文字から8文字の間とかですね。 ちなみにドラクエのサイトは必要ありませんので、あしからず。VB.NETではどうしたらできるのか?という話です。 どうぞよろしくお願いします。
- DT50
- お礼率95% (504/530)
- Visual Basic
- 回答数4
- ありがとう数5
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- popesyu
- ベストアンサー率36% (1782/4883)
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のお約束事ということです。
- fortranxp
- ベストアンサー率26% (181/684)
>「Microsoft.VisualBasic.」 このような表現はVB.NETからです。 その前は普通に CHRやLEFTやRightが使えていたのですがNETからそのようになりました。多分 Javaに パクられたくないので登録商標が付いているのでしょう。
お礼
登録商標でしたか。どうもありがとうございました。
- fortranxp
- ベストアンサー率26% (181/684)
取り敢えず一例です。 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
お礼
ご回答ありがとうございます。なるほどぉ。試してみますね!
補足
すみません!!! 質問なんですが、「k = Microsoft.VisualBasic.Chr(i) 」の部分の「Microsoft.VisualBasic.」って、どういう意味ですか?関数ですか?自分はこういうコードは見たことがありません。不慣れなので、教えて頂ければ幸いです。
- temtecomai2
- ベストアンサー率61% (656/1071)
ハッシュ値ではどうでしょうか?
お礼
さっそくのご回答ありがとうございます。自分はランダム関数を使おうかと思っていました。ハッシュ値って聞いたことありますが、難しそうですね。それは使用したことがない関数(?)なので…。 私目は大した知識がないくせに「復活の呪文の初歩的なものはVB.NETでどうプログラミングするのか?」って疑問が浮かびました。プログラム例の投稿もお待ちしておりますので、どうかよきアドバイスをお願いいたします!
関連するQ&A
- VB.NETで16進数が正しいかどうかの判定方法を教えて
VB.NETなのですが、String型に入ってる文字列が 数字とA~Fのみの16進数の値であるかどうかを判別するには どのようにしたら良いでしょうか? よろしくお願いいたします。
- ベストアンサー
- Visual Basic
- VB.NETのテキストボックスで、カーソル位置に文字を入れたいのですが、どうすればいいのでしょうか
VB.NET作っています。 System.Web.UIWebControls.TextBoxで、 ボタンを押すとテキストボックスのカーソル位置に文字列を入れたいのですが、どうやってやればいいのでしょうか? おしえてくださいーー
- ベストアンサー
- Visual Basic
- 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" とすると、正常に全文字数が入る。 半角文字列の塊なのに、どうしてこのようなことが起きるのでしょうか? また、これの対応策は何ですか? 以上、よろしくお願いします。
- ベストアンサー
- Visual Basic
- VB.NETでの時間計算
いつもお世話になっております。 VB.NETに関しての初歩的な質問です。 TextBox1.Text「0900」 TextBox2.Text「1030」 などと4桁の文字列を入力して、時間を計算したいのです。 早い話、ある作業にどれくらいの時間を費やしたかを計算したいのです。 各項目毎に計算して、それぞれの集計もしたいと思っています。 上記のやり方だと何となくうまくいかないような気がするのですが、 一般的に利用されている方法があれば教えて頂きたいと思います。 初歩的な質問で大変恐縮ですが、 よろしくお願い致します。
- ベストアンサー
- Visual Basic
- エクセルで同じ文字を削除する
同じ列に「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の内容は読み取った だけなのになぜ書き換えられてしまうのでしょうか? どの場合でもファイルへの記録は正常に出来ています。 何か問題点などありましたらご教授いただけると助かります。
- ベストアンサー
- Visual Basic
- VB.NET LeftBの代用
こんにちわ。 文字列を、バイト数でカットしたいのですが、方法がわかりません。 例えば、 "1あ2い3う4え5お"という文字列があるとすると この文字列の4バイト分の"1あ2"を取り出したい と言ったケースです。 ヘルプを調べたら、 LeftB,MidB,RightBの関数は、VB.NETから、 文字列が、Unicodeの2バイト扱いになるので、 サポートされていないと記述されていました。 LeftB関数と同じような事を、VB.NETでも行いたいです。 どなたか、アドバイスお願致します。
- ベストアンサー
- Visual Basic
- VB6.0の「vbFromUnicode」はVB.NETではどれに相当しますか?
VB6.0で、例:StrConv(Text, vbFromUnicode)とかで使用する、 「vbFromUnicode」(文字列を Unicode からシステムの既定のコードページに変換する) は、VB.NETでは使用できないようです。(相当する定数はない?) 「vbFromUnicode」と同等の機能を、VB.NETで使用したいのですが、 どうすれば良いでしょうか?
- ベストアンサー
- Visual Basic
- vb.netの問題で悩んでいます。
vb.netで、このような問題が出て苦戦しています。 次のようなフォームを作成してください。 データAのテキストボックスには、文字列を、データBには回数を入れ、表示ボタンを押したときに文字列を回数分つないだものがメッセージボックスに表示される。(AにxyzでBに3ならばxyzxyzxyzと表示される) フォームは作成できました。肝心のプログラムが全然書けません。片方はstring 片方はintegerというくらいしか。。教えてください。
- ベストアンサー
- その他(インターネット・Webサービス)
- 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 より ____
- ベストアンサー
- その他(プログラミング・開発)
お礼
ご回答ありがとうございます。