メモ
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
は著作権欄
PHP7以上になったらPear::Mailは捨ててPHPMailerを使おう
PHP7だとPear::Mailがエラーでて動かない。
PHP Parse error: syntax error, unexpected 'new' (T_NEW) in
PHPMailerがいいよ。