vb.netでバイナリファイル読み書き

FilePut/FileGetというのがあって便利

public Class Form1

'バイナリファイル読み書きの練習
Public Structure Person
Public Name As String
Public Age As Short
End Structure
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'System.IOクラス
'BinaryWriter/Reader使用
Const filename = "F:\VB2005練習\バイナリファイル処理\test.dat"

Dim i As Integer = 5554444
Dim db As Double = Math.PI

'書き込み
Dim BFile As New System.IO.BinaryWriter(New System.IO.FileStream(filename, IO.FileMode.Create))
BFile.Write(i)
BFile.Write(db)
BFile.Close()

'読み込み
Dim i_r As Integer
Dim db_r As Double

Dim BRFile As New System.IO.BinaryReader(New System.IO.FileStream(filename, IO.FileMode.Open, IO.FileAccess.Read))
i_r = BRFile.ReadInt32() '読み込み時は型を指定しないといけない
db_r = BRFile.ReadDouble()
BRFile.Close()

Debug.WriteLine(i_r)
Debug.WriteLine(db_r)

End Sub


Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
'Microsoft.Visualbasic.FileSystemクラス
'FilePut/Get使用
Const filename = "F:\VB2005練習\バイナリファイル処理\test2.dat"

Dim i As Integer = 5554444
Dim db As Double = Math.PI

'書き込み
Dim n As Integer = FreeFile()
FileOpen(n, filename, OpenMode.Binary)
FilePut(n, i)
FilePut(n, db)
FileClose(n)

'読み込み
Dim i_r As Integer
Dim db_r As Double

n = FreeFile()
FileOpen(n, filename, OpenMode.Binary, OpenAccess.Read, OpenShare.LockWrite)
FileGet(n, i_r)
FileGet(n, db_r)
FileClose(n)

Debug.WriteLine(i_r)
Debug.WriteLine(db_r)

End Sub

vb.netでビットフィールド構造体的アクセス

扱いたい数字の最高値をいれれば、いい感じに割り振ってくれる

dim data as int32

'元になるデータをセット
Dim dataBV As BitVector32 = New BitVector32( data )

'mySect1 はケツから0-6の数字が扱えるエリアと定義
'mySect2 はmySect1の次から0-3の数字が扱えるエリアと定義
'mySect3 はmySect2の次から0-1の数字が扱えるエリアと定義
'mySect4 はmySect3の次から0-15の数字が扱えるエリアと定義
dim mySect1 as BitVector32.Section = BitVector32.CreateSection( 6 )
dim mySect2 as BitVector32.Section = BitVector32.CreateSection( 3, mySect1 )
dim mySect3 as BitVector32.Section = BitVector32.CreateSection( 1, mySect2 )
dim mySect4 as BitVector32.Section = BitVector32.CreateSection( 15, mySect3 )

dim s1
s1 = dataBV(mySect1 ) 

vb.netでバイト型配列を文字列に変換する

'バイト型配列"bytesData"に文字列データが入っているものとする

Dim str As String

'Shift JISとして文字列に変換
str = System.Text.Encoding.GetEncoding(932).GetString(bytesData)

'JISとして変換
str = System.Text.Encoding.GetEncoding(50220).GetString(bytesData)

'EUCとして変換
str = System.Text.Encoding.GetEncoding(51932).GetString(bytesData)

'UTF-8として変換
str = System.Text.Encoding.UTF8.GetString(bytesData)

'結果を表示
Console.WriteLine(str)

vb.netでビットシフト演算子

>> << と Cっぽい書き方でできる

Dim i As Integer

i = 4 >> 1 ' 算術右シフト : i = 4 \ (2 ^ 1) = 2 となる
' &B0100(&H4) -> &B0010(&H2)

i = 4 << 1 ' 算術左シフト : i = 4 * (2 ^ 1) = 8 となる
' &B0100(&H4) -> &B1000(&H8)

i = 7 >> 2 ' 算術右シフト : i = 7 \ (2 ^ 2) = 1 となる
' &B0111(&H7) -> &B0001(&H1)

i = 3 << 2 ' 算術左シフト : i = 3 * (2 ^ 2) = 12 となる
' &B0011(&H3) -> &B1100(&HC)

i = 5
i = i >> 1 ' 算術右シフト : i = 2
i = i << 3 ' 算術左シフト : i = 16

inno setupでインストーラーのプロパティにあるバージョンなどの記載

AppVersion
はインストーラの初期画面と、アプリケーションの追加と削除に反映される。
ちなみに AppVerName を指定するとそちらが優先される

ファイルのプロパティで表示される「詳細」タブに表示されるのは VersionInfoVersion(ファイルバージョン)
VersionInfoProductVersion(製品バージョン)

AppCopyright
は著作権欄