• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:[VB.NET] テキスト出力で困ってます(T△T)

[VB.NET] テキスト出力で困ってます(T△T

このQ&Aのポイント
  • Byte型で読み込んだ内容を指定した固定長で出力する方法を教えてください。テキストファイルを読み込んで、そのバイナリ値を指定の形式で出力する方法がわかりません。
  • VB.Netでテキストファイルを読み込み、16進数形式で指定の固定長で出力する方法を教えてください。試したコードではうまくいかず、どのように修正すれば良いか分かりません。
  • VB.Netでテキストファイルのバイナリ値を読み込み、指定の形式で出力する方法を教えてください。現在のコードでは出力がうまくいかず、どのように修正すれば良いか分かりません。

質問者が選んだベストアンサー

  • ベストアンサー
  • Gotthold
  • ベストアンサー率47% (396/832)
回答No.2

入力ファイルの各バイトを ただ単純に16進数表記で出力するプログラムです。 適当に改造すれば目的のこともできるでしょう。 ======================================== ' インデントに全角空白を使っています。要削除。 Class Bin2HexText  Shared Sub main(ByVal args As String())   Dim srcName As String = args(0) ' 入力ファイル名   Dim destName As String = args(1) ' 出力ファイル名   Dim BUFSIZE As Integer = 2048 ' 1度に処理するサイズ   Dim buf(BUFSIZE) As Byte ' 読み込み用バッファ   Dim readSize As Integer ' Readメソッドで読み込んだバイト数   Using src As New System.IO.FileStream( _     srcName, System.IO.FileMode.Open, System.IO.FileAccess.Read)    ' 出力ファイルはテキストファイルとして扱う    Using dest As New System.IO.StreamWriter( _      destName, False, System.Text.Encoding.GetEncoding("shift_jis"))     While True      readSize = src.Read(buf, 0, BUFSIZE) ' 読み込み      If readSize = 0 Then       Exit While ' 完了      End If      For i As Integer = 0 To readSize - 1        ' Byte型数値を16進数表記(文字列)に変換して出力        dest.Write( String.Format("{0:X2} ", buf(i)) )      Next     End While    End Using   End Using  End Sub End Class

wansui
質問者

お礼

とてもわかりやすい回答ありがとうございました! まじうれしーーーーーーーーw さんくすうー^^

その他の回答 (1)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

「固定長」とありますが、「1行が6文字のテキストファイル」ということでよろしいですか? それなら、次の方法でよいのでは。 ToString、format等で Byte→2文字の16進数文字列にする ↓ 3つ分出力したら、改行を出力する http://msdn.microsoft.com/ja-jp/library/dwhawy9k%28v=vs.110%29.aspx#XFormatString

wansui
質問者

お礼

すいませんちょっとよくわかんないです。

wansui
質問者

補足

試しにAの文字列をbyte型に直して10進「65」を6と5にばらして 今度は6,5のそれぞれのbyteを取得する事が出来たんですけど それをどうやってbufへ格納してファイルに書き出して良いのかわかんないです、、、。 ----------------------- ' Byte書き込み For i As Integer = 0 To readSize - 1 n = buf(i) For j As Integer = 1 To Len(n) MsgBox(Asc(Mid(n, j, 1))) Next Next -----------------------

関連するQ&A