Open strSource For Binary Access Read Lock Write As #1
Open strDestination For Binary Access Write Lock Write As #2
Get #intSourceFile, , BUFFER
Put #intDestinationFile, , BUFFER
Open strDestination For Binary Access Write Lock Write As #2
Get #intSourceFile, , BUFFER
Put #intDestinationFile, , BUFFER
Dim buffer As String * 1
CommonDialog1.ShowOpen
Open CommonDialog1.FileName For Binary Access Read Lock Write As #1
CommonDialog1.ShowSave
Open CommonDialog1.FileName For Binary Access Write Lock Write As #2
Get #1, , buffer
Put #2, , buffer
我用这样也不行Dim buffer As String * 1
CommonDialog1.ShowOpen
Open CommonDialog1.FileName For Binary As #1
CommonDialog1.ShowSave
Open CommonDialog1.FileName For Binary As #2
Get #1, , buffer
Put #2, , buffer
会有UniCode转化的问题
应该用Byte数组
读取:
Dim TempFile As Long
Dim LoadBytes() As ByteTempFile=FreeFile
Open 文件名 For Binary As #TempFile
Redim LoadBytes(1 To Lof(TempFile)) As Byte
Get #TempFile,,LoadBytes
Close TempFile'Text1.Text=StrConv(LoadBytes,vbUniCode)写入:
Dim TempFile As Long
Dim SaveBytes() As Byte'SaveBytes=StrConv(Text1.Text,vbFromUniCode)
SaveBytes=LoadBytesTempFile=FreeFile
Open 文件名 For Binary As #TempFile
Put #TempFile,,SaveBytes
Close TempFile
而是一个UniCode字符如果读取的字节的ASCII码<=127,会认为那是一个单字节字符,把该字节读取到该字符串
如果读取的字节的ASCII码<=127,会认为那是一个双字节字符,把该字节及下一个字节读取到该字符串所以会有偏差
Dim TempFile As Integer
Dim TempBytes() As Byte
Dim FileLen As Long
TempFile = FreeFile
Open SFile For Binary As #TempFile
FileLen = LOF(TempFile)
ReDim TempBytes(1 To FileLen)
Get #TempFile, , TempBytes
Close #TempFile
Open DFile For Binary As #TempFile
Put #TempFile, , TempBytes
Close #TempFile
End Sub