所以,我有我试图写为二进制文件大VBA字符串。我有一个函数,确实如此美妙。我有一个字符串,它很长,大约80K让说。此字符串从文件中读取在正确地,通过传递函数正确地,打印到正确屏幕。但无论我做什么,以任何方式或形式我可以得到超过39K到文件中。我已经将字符串分割成更小的位搞清楚这是VBA的限制。然后,它传递给我的机能的研究42个字符的时间。 SEEK(LOF)+1放是开箱子后什么IM做什么,但...这似乎并不重要我怎么称呼它。二进制,ASCI,写它的一次。我只得到了最后的39K。下面是一个使用写入文件中的函数IM。这是一个内存限制不是一个语法错误,据我可以告诉,可能有一点做与我的代码的形式不亚于一些事情,我似乎无法得到。
sub IBorrowedThis(hex_val as string)
dim output() as string
dim handle as long
output = Split(hex_val, "|")
handle = FreeFile
open "fp" for binary as #handle
For i = LBound(output) to Unbound(output)
seek #handle,LOF(handle) + 1
put #handle, , cbyte("&H" & output(i))
next i
close #handle
end sub
所以我都在片和一切正常测试这一点。附加到端包括在内。只是不适合大文件。
另一种更简单的方式来写一个二进制字符串到一个文件:
SUB WriteBinaryStringToFile (hex_val AS STRING)
DIM handle AS LONG
handle = FREEFILE
OPEN "binary2.tst" FOR BINARY AS #handle
SEEK #handle, LOF(handle) + 1
PUT #handle, , hex_val
CLOSE #handle
END SUB
简单的方法来写二进制字符串到文件:
SUB WriteBinaryStringToFile (hex_val AS STRING)
DIM c AS STRING * 1
DIM I AS LONG
DIM handle AS LONG
handle = FREEFILE
OPEN "fp" FOR BINARY AS #handle
FOR I = 1 TO LEN(hex_val)
c = MID$(hex_val, I, 1)
SEEK #handle, LOF(handle) + 1
PUT #handle, , c
NEXT I
CLOSE #handle
END SUB