保存は、
Dim FileName1 As String = "C:\Documents and Settings\xxxxxxx\デスクトップ\AAA.txt"
Dim FileName2 As String = "C:\Documents and Settings\xxxxxxx\デスクトップ\BBB.txt"
Dim Writer As IO.StreamWriter
Dim Encode As System.Text.Encoding
If ComboBox1.SelectedItem = "AAA" Then
Writer = New IO.StreamWriter(FileName1, True, Encode)
Writer.Write(TextBox2.Text)
Writer.Close()
End If
If ComboBox1.SelectedItem = "BBB" Then
Writer = New IO.StreamWriter(FileName2, True, Encode)
Writer.Write(TextBox2.Text)
Writer.Close()
先程教えていただいたグラフコントロールがVB2008で使えそうです。
Microsoft Chart Controls for Microsoft .NET Framework 3.5の言語パックをインストールしました。
(.NET Framework 3.5 SP1が必要のようなので開発環境をVB2008にします)
<プログラム>
Dim BeforeTime As Long
Dim NowTime As Long
Dim n As Integer
'システムを立ち上げてからの経過時間(単位:ミリ秒)を取得
Private Declare Function GetTickCount Lib "Kernel32" () As Long
'実行処理
Private Sub buttonRun_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles buttonRun.Click
For n = 1 To 20
TimeCheck()
Next
End Sub
'データ取得&表示
Private Sub TimeCheck()
BeforeTime = GetTickCount
TextBox1.Text = TextBox1.Text & n & " : " & BeforeTime & " " & BeforeTime - NowTime & ControlChars.CrLf
NowTime = BeforeTime
End Sub
> 271
VB2005 以降を使用しているのであれば
Dim BeforeTime As Long
Dim NowTime As Long
を
Dim BeforeTime As UInteger
Dim NowTime As UInteger
へしてみてください。
GetTickCount は unsigned な 32bit 値を返しますよ。
Dim BeforeTime As UInteger
Dim NowTime As UInteger
に変更したら、オーバーフローが出ました。この2行だけの変更ではだめなんでしたか?
ちなみに、
Private Declare Function GetTickCount Lib "Kernel32" () As Long
↓
Private Declare Function GetTickCount Lib "Kernel32" () As Integer
にしたら、問題解決しました。
失礼、肝心な点が漏れていました。
Private Declare Function GetTickCount Lib "Kernel32" () As Long
↓
Private Declare Function GetTickCount Lib "Kernel32" () As UInteger
へ
VB 2005 から Long は 64bit になっています。
そのため Long では半分はゴミを引っ張ってきていることになります。
また、Integer では符号付ですのでPCを25日以上電源を入れたまま使い続ければ誤動作するでしょう。