月 | 火 | 水 | 木 | 金 | 土 | 日 |
---|---|---|---|---|---|---|
29 | 30 | 1 | 2 | 3 | 4 | 5 |
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 | 1 | 2 |
ず〜っと忙しくて更新できなかったけど、本だけは買っていたので・・・。
18巻買った。時の作家が藤崎真緒になってた(汗)
う〜ん。こーやって並べてみるとたくさん買ってるんだなぁ。。。
.NETな開発環境ってIDE無くてよいなら、無料で手に入るんだね。 ここを読んでる人たちはとーぜん知ってるだろうけど、一応 ダウンロード先 を示しておこう。
・・・ってことで・・・。
Tipsと呼べないほどのことだけど、まぁ、まだ情報も少ないだろうから書いておくことに意味があるかな。。。
Option Explicit Option Strict Imports System Imports System.Windows.Forms Public Module modMain Sub Main() Dim compname As String = SystemInformation.ComputerName Dim username As String = SystemInformation.UserName Console.WriteLine("ComputerName is " & compname) Console.WriteLine("UserName is " & username) End Sub End Module
んで、コンパイルするときは
>vbc /target:exe /debug+ /reference:System.dll,System.Windows.Forms.dll /out:.\sample1.exe sample1.vb
コンパイルするときに、/referenceの後ろに書くアセンブリ名はカンマで区切るらしいんだけど、 そのとき、カンマとアセンブリ名の間をスペースであけるとコンパイルに失敗するみたい。 最初はめちゃめちゃ悩んだので気をつけよう。
ホスト名より、IPAddressを取得するサンプル。 ついでに、コマンドライン引数の取得の仕方もわかるようになってたりする。
Option Explicit Option Strict Imports System Imports System.Net Public Module modMain Public Sub Main(args As String()) Dim i As Integer If args.Length = 0 Then '引数がないときは自分のホスト OutputIPAddressList(Dns.GetHostName) Else For i = 0 To args.Length - 1 OutputIPAddressList(args(i)) Next i End If End Sub Private Sub OutputIPAddressList(ByVal HostName As String) Dim i As Integer Dim HostEntry As IPHostEntry = Dns.GetHostByName(HostName) Dim IPs As IPAddress() = HostEntry.AddressList Console.WriteLine("HostName: " & HostName) For i = 0 To IPs.Length - 1 Console.WriteLine("IPAddress(" & i.ToString & "): " & IPs(i).ToString) Next i End Sub End Module
会社の同僚らしき人のホームページ*1を見つけてしまった。 仕事してるときとまるで違うキャラなんでちょっと焦ってる。 こーゆーのって本人を問い詰めるべきなんだろーか。。。
・・・とか神妙そーなフリしてるけど、 風のうわさでその人が自分のホームページを持ってるってのを聞いてGoogleっただけだったりする(- -)v
う〜む。結構簡単に見つけられるもんなんだな〜。
って、裏を返せばこのサイトも簡単に会社の人にばれる可能性があるってこと。 気をつけないと・・・(何を?)
某V友内の.NET掲示板を参考に作成。
掲示板に載ってたヤツをこーやってネタにするのもどーかと思うが、 .NETのクラスライブラリに慣れるまではこーやってちょこちょこと短いソースを載っけよーかな、と。
HttpUtility.UrlEncodeメソッドの第二引数がポイント。 この例ではEUC-JPで処理している。
Imports System Imports System.Text Imports System.Web Public Module modMain Public Sub Main(args As String()) Dim s As String = "初心者" Dim e As Encoding = Encoding.GetEncoding("euc-jp") Console.WriteLine(HttpUtility.UrlEncode(s, e)) End Sub End Module
*1: って言い方はあんまり好きじゃないんだが。
VB.NETってスレッドが簡単に扱えるようになってるんだね。感動♪
Imports System Imports System.Threading Module modMain Private count As Long Sub Main() 'ThreadStart デリゲートを作成する Dim tStart As ThreadStart = New ThreadStart(AddressOf StartCounting) 'スレッドを作成する Dim t1 As Thread = New Thread(tStart) Dim t2 As Thread = New Thread(tStart) 'スレッドの開始 t1.Start() t2.Start() Console.Read() 'キーボードの入力があるまで待機 'スレッドの終了 t1.Abort() t2.Abort() End Sub Sub StartCounting() Do '別のスレッドが同じ変数にアクセスしている場合は、 'Interlocked.Increment を使用する Interlocked.Increment(count) Console.WriteLine("After incrementing count is : {0}", count) Thread.Sleep(200) Loop End Sub End Module
勢いで買っちゃったけど、まだちゃんと連載してるのかなぁ?
ロト紋より長くなるらしい。 どーゆーふーにオリジナル要素を加えていくかが楽しみ。
やっと古本屋で発見。
一気に成長していてびっくり。 とりあえず、「総一郎さん」ってのはどーしてもなじめないな。。。
ホントは少女少年の新刊を買うはずだったのに、どこにも売ってないんだもんな。
3巻買い忘れた。てっきり既に買ってると思ったのにのにのに。。。
やっと全巻揃った。
・・・痛・・・。
薦められて買ったはいいけど、まだ1巻〜が無くて読んでない・・・(T-T)
こないだ買ったのに書くの忘れてた。。。
やっと買った。やっと読んだ。
.NET Framework用UnitTestツール を見つけた。 .NET用UnitTestって聞いたこと無かったし、自分で作るつもりでいたくらいなので、かなり嬉しい。 ってことで、早速試してみた。
試したときのサンプルソースとコンパイル・実行方法を載せて覚書としておこう。
まずは、テスト用クラス。 SampleクラスのSayHelloメソッドをテストするようにしてみた。
SampleTest.vb --- Imports System Imports NUnit.Framework Public Class SampleTest Inherits TestCase '親クラスに引数を渡すだけ。 Public Sub New(ByVal name As String) MyBase.New(name) End Sub Protected Overrides Sub Setup() End Sub 'UnitTestを実行する人はコレを探すらしい。 Shared ReadOnly Property Suite() As ITest Get Suite = New TestSuite(GetType(SampleTest)) End Get End Property '実際のテストコード。Test〜で始まるPublicメソッドを実行してくれるそうな。 Public Sub TestSayHello() Dim sample As New Sample Assertion.AssertEquals("Hello World!!", sample.SayHello("World")) Assertion.AssertEquals("Hello momo!!", sample.SayHello("momo")) Assertion.AssertEquals("Hello (none)!!", sample.SayHello("")) Assertion.AssertEquals("Hello (none)!!", sample.SayHello()) End Sub End Class
んでお次はテストされる側のクラス。 ホントは少しずつ作っていく過程を見せたいんだけど、とりあえず完成ソースを示してしまおう。
Sample.vb --- Imports System Public Class Sample Public Function SayHello(Optional ByVal user As String = "") As String If user = "" Then SayHello = "Hello (none)!!" Else SayHello = "Hello " + user + "!!" End If End Function End Class
準備ができたらコンパイル。 NUnitのインストール先は環境に合わせて修正してくれい。
まずは、Sample.vbのコンパイル。
>vbc.exe /t:library Sample.vb
次に、SampleTest.vbのコンパイル。
>vbc.exe /t:library /libpath:"C:\Program Files\NUnit\bin" /r:NunitCore.dll,Sample.dll SampleTest.vb
環境変数LIBに追加しといてもいいかもしれない。
>SET LIB=%LIB%;C:\Program Files\NUnit\bin >vbc.exe /t:library /r:NunitCore.dll,Sample.dll SampleTest.vb
そしたら、テスト。 ・・・その前に、NUnitのインストール先\binにパスを通しておこう。
>SET PATH=%PATH%;C:\Program Files\NUnit\bin >NUnitConsole.exe SampleTest,SampleTest.dll . Time: 0.04 OK (1 tests)
ちなみにエラーのとき。 SayHelloメソッドで"(none)"の判別式をいれてなかった時に出たメッセージ。 ホントは<Hello (none)!!>ってしたいのに、今は<Hello !!>ってなっちゃってるよ〜って 教えてくれている。
>NUnitConsole.exe SampleTest,SampleTest.dll .F Time: 0.05 There was 1 failure: 1) TestSayHello(SampleTest) " expected:<Hello (none)!!> but was:<Hello !!>" FAILURES!!! Tests Run: 1, Failures: 1, Errors: 0
GUIな実行ツールあったんだけど、日本語表示に対応していないようなのが残念(T-T) 日本語版.NET Frameworkでリコンパイルすりゃいいのかなぁ・・・。
ついに最終巻を読むことが出来た・・・。 いまいちしっくりくるラストにはなってなかったんだけど(T-T)
・・・にしても、ずいぶん前だったんだな。6巻までを買ったのって。。。
一冊丸々修学旅行。・・・ってまだ終わってないけどね。
つーか、最近の高校生って修学旅行で海外に行くのか・・・。 よいなぁ。
なんつーか、ここに書くことばが思い浮かばん*1。 つまんないわけじゃないんだけど、印象に残らないんだよね・・・。
*1: まぁ、いつもたいしたこと書いてないけどさ(T-T)
買ったリストしか更新してないぞ〜なんて至極まともな突っ込みが入っている今日この頃。 そんなこと言われたって、ネタ&時間がないんだもんな〜(T-T)
いちおー連載はしてたみたい(^^;;
某○友等のVB系コミュニティでたまに見かける、「VBでは画面サイズ以上のフォームを作成できない」ってのは 厳密に言えば誤りなんだよってのを証明するサンプルを公開。
実はももめも作成時に作った、画面サイズ制御用クラスの応用だったりする・・・(^^;;; *1
*1: ふとももソースにも同梱されてたかも。
このページにリンクを張りたい人はご自由にどうぞ。
疑問・感想・要望・不満・文句・愚痴等々ありましたら↓までメール下さいましm(_ _)m