| 月 | 火 | 水 | 木 | 金 | 土 | 日 |
|---|---|---|---|---|---|---|
| 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