掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
バイナリファイルの上書き、追加、保存をするには??【.NET】 (ID:116508)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> read.txtの"WINDOWS"の文字だけを、配列を使って"******"アスタリスク(バイナリ値:2A)で それなら、バイナリで扱わなくても、String として処理できますよ。 '元データをStringとして読み込む。 Dim SJIS As System.Text.Encoding = SJIS.GetEncoding("Shift_JIS") Dim InputFile As New System.IO.StreamReader("C:\read.txt", SJIS) Dim SourceData As String = InputFile.ReadToEnd() InputFile.Close() 'WINDOWS を ***** に置き換える。 Dim ResultData As String ResultData = Replace(SourceData, "WINDOWS", "*******") '元のファイルの内容を書き換える。(別ファイルを指定してもOK) Dim OutputFile As New System.IO.StreamWriter("C:\read.txt", False, SJIS) OutputFile.Write(ResultData) OutputFile.Close() > For i = 0 To FileSize - 1 その前の部分には、『Dim Size as Integer = CInt(DataFile.Length)』と 書かれていますよね。なぜここでは、「FileSize」ではなく「Size」なのでしょうか? > Case 87, 73, 78, 68, 79, 87, 73 ←W,I,N,D,O,W,Sの10進数(57 49 4E 44 4F 57 53) 値が間違ってますよ。(^_^;) これでは WINDOWN です。 その書き方に従って書くなら、 Case 87, 73, 78, 68, 79, 87, 83 ですよね。 > For i = 0 To FileSize - 1 > Select Case Buffer(i) > Case 87, 73, 78, 68, 79, 87, 73 ←W,I,N,D,O,W,Sの10進数(57 49 4E 44 4F 57 53) > Buffer(i) = 42 ←*の10進数 > End Select > Next データの並びを考慮しなくて良いのでしょうか? その手法だと、「MY WINDOWS.」→「MY *******.」のような変換だけではなく、 「YOUR DOS.」→「Y*UR ***.」とも変換されてしまいますよ。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.