VBA写得很大串

问题描述 投票:0回答:2

所以,我有我试图写为二进制文件大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

所以我都在片和一切正常测试这一点。附加到端包括在内。只是不适合大文件。

vba binary hex basic
2个回答
0
投票

另一种更简单的方式来写一个二进制字符串到一个文件:

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

-1
投票

简单的方法来写二进制字符串到文件:

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
© www.soinside.com 2019 - 2024. All rights reserved.