【发布时间】:2013-07-17 15:47:15
【问题描述】:
我有一个程序将文件的字节加载到十六进制数组中,数组的结果长度为 16,777,216。我对数组进行了一些快速编辑,将其转换为一个巨大的字符串(长度为 33,554,432),以便可以将其转换回字节数组并写入一个新文件。好吧,我尝试这样做。
问题是字符串的创建需要很长时间,即使在等待几分钟(这是我所期望的全部时间)之后也是如此。我认为没有更好的方法来设置这个字符串,就像我目前拥有的那样,但是有没有办法通过保持十六进制数组原样来完成这个?或者是否有一种简单的方法让我只修改我需要的偏移量而不重写整个文件?
Dim tHex As String = ""
For i = 0 To gloBytes.Length - 1
tHex &= gloBytes(i)
Next
感谢您的帮助。
【问题讨论】:
-
您正在遍历文件中的每个字节,然后逐个字符地构建转换后的字符串……难怪它很慢……1600 万次转换 + 1600 万次字符串连接…… .
-
@MarcB - 这些连接中的每一个都必须创建一个新字符串并从旧字符串中复制数据。