- 題名: 任意の行に上書き処理する方法
- 日時: 2008/04/24 17:59:41
- ID: 21926
- この記事の返信元:
- (なし)
- この記事への返信:
- [21928] Re[1]: 任意の行に上書き処理する方法2008/04/24 20:45:38
- ツリーを表示
お二方返信ありがとうございます。動くようにはなりました。 知識的な部分では解決はしていませんが、 仕様通りの動作はしているということで解決済みにさせていただきます。 数日前からVB6から.NETへ作業が移って右往左往しておりました。 エラーの原因は当初からデバックが出来ないため、Msgboxで変数を表示させていたときにByte変数の表示でエラーになっていたためでした。 調べた結果、「.NET Compact Framework 2.0 SP2」をインストールすることによってデバッグで出来るようにはなりました。 「BinaryReader / BinaryWriter」についてもう少し調べてみます。 体試行錯誤の段階でのソースを掲載してしまったので、解釈に苦しむ点があったことをお詫びします。 FileStreamの解放処理については他のサイトのサンプルでは記述がなかったので、 fs.Close()だけいれてました。 '// alngGyo:あらかじめ特定された行 '// astrBuff:書き込む内容(半角13桁)バーコードです。 Private Function Dat_Write(ByVal alngGyo As Long, ByVal astrBuff As String) As Boolean Dim fs As System.IO.FileStream Dim byteBuff(13) As Byte Try '// ファイルオープン fs = New System.IO.FileStream("ファイル名", IO.FileMode.Open, IO.FileAccess.ReadWrite) '// Seek処理(一行117桁で24桁目から上書きを行うため) fs.Seek(alngGyo * 117 + 24, System.IO.SeekOrigin.Begin) '// Byte変換 byteBuff = System.Text.Encoding.GetEncoding("shift-jis").GetBytes(astrBuff) '// 書き込み処理 fs.Write(byteBuff, 0, byteBuff.Length) fs.Close() Return True Catch ex As Exception 'MsgBox("ファイル書き込みエラー", MsgBoxStyle.OkOnly) fs.Close() Return False End Try End Function
分類:[.NET]