0
在我的VB.NET程序中我必須刪除所有在這些之後的字節:48534853
直到它結束(我知道這會破壞文件)。VB.NET刪除文件中的特定文件後的所有字節
我該怎麼做?我已經寫了函數來替換另一個模式,並找到特定的字節,但我不知道如何消除模式後的一切。
在我的VB.NET程序中我必須刪除所有在這些之後的字節:48534853
直到它結束(我知道這會破壞文件)。VB.NET刪除文件中的特定文件後的所有字節
我該怎麼做?我已經寫了函數來替換另一個模式,並找到特定的字節,但我不知道如何消除模式後的一切。
使用FileStream.SetLength
方法。
Using stream = New FileStream(path, FileMode.Open, FileAccess.Write)
fileStream.SetLength(newLength)
End Using
-
試試這個:
Dim pattern As Integer() = New Integer() {&H48, &H53, &H48, &H53}
Dim p As Integer = 0 'Position in pattern.
Using fs = New FileStream("path", FileMode.Open, FileAccess.ReadWrite)
For pos As Integer = 0 To fs.Length - 1
Dim b As Integer = fs.ReadByte()
If b = pattern(p) Then
p += 1
If p = pattern.Length Then
fs.SetLength(pos - pattern.Length + 1)
Return
End If
Else
p = 0
End If
Next
End Using
注意fs.ReadByte()
返回字節作爲Integer
。
謝謝,但它的大小可以改變,所以我並不總是知道模式的確切偏移量。那麼如何確定文件大小直到該模式? – Andrea
你正在說的字節,但顯示我們的數字'48534853'。這不是一個字節。它是文本文件中的文本模式嗎?因爲訪問文本文件中的字符與訪問字節流非常不同。根據編碼的不同,可以使用不同數量的字節來表示一個字符。在確定字節長度時必須考慮這一點。 –
'數字'是十六進制字節:48 53 48 53(在ASCII中是'HSHS')。我必須找到這8個字節,並刪除它們後面的所有內容 – Andrea