先打开文件,再移动指针open "a.txt" for binary as #1 Seek #1, LOF(1) + 1 Put #1, , x 'x为要写入的byte() Close #1
我的程序,为什么追加的时候总是少第一行呢? 源码如下: Const ARR_NUM As Integer = 2048 Dim arr() As Byte ReDim arr(0 To ARR_NUM - 1) As Byte Dim a As Byte Dim arr1() As Byte Dim filelen, i, k As Integer Dim readfilenum As Integer k = 1 filelen = Len(RichTextBox1.Text) readfilenum = FreeFile() Open App.Path + "\log.dat" For Binary As readfilenum Seek #readfilenum, LOF(readfilenum) + 2
'If filelen > ARR_NUM * k Then ' For i = 0 To ARR_NUM ' arr(i) = AscB(Mid(RichTextBox1.Text, i + 1, 1)) ' Next 'Else ' For i = 0 To (filelen - ARR_NUM * (k - 1)) ' arr(i) = AscB(Mid(RichTextBox1.Text, i + 1, 1)) ' Next 'Put #readfilenum, , arr 'End If 'arr1 = StrConv(RichTextBox1.Text, vbFromUnicode) i = 0 For k = 1 To filelen
arr(i) = CByte(Asc(Mid(RichTextBox1.Text, k, 1))) 'arr(i) = arr1(k) If i >= ARR_NUM - 1 Then Put #readfilenum, , arr 'Debug.Print arr i = 0 ReDim arr(0 To ARR_NUM - 1) As Byte Else i = i + 1 End If Next Put #readfilenum, , arr Close #readfilenum MsgBox "文件保存成功!"
Seek #1, LOF(1) + 1
Put #1, , x 'x为要写入的byte()
Close #1
源码如下:
Const ARR_NUM As Integer = 2048
Dim arr() As Byte
ReDim arr(0 To ARR_NUM - 1) As Byte
Dim a As Byte
Dim arr1() As Byte
Dim filelen, i, k As Integer
Dim readfilenum As Integer
k = 1
filelen = Len(RichTextBox1.Text)
readfilenum = FreeFile()
Open App.Path + "\log.dat" For Binary As readfilenum
Seek #readfilenum, LOF(readfilenum) + 2
'If filelen > ARR_NUM * k Then
' For i = 0 To ARR_NUM
' arr(i) = AscB(Mid(RichTextBox1.Text, i + 1, 1))
' Next
'Else
' For i = 0 To (filelen - ARR_NUM * (k - 1))
' arr(i) = AscB(Mid(RichTextBox1.Text, i + 1, 1))
' Next
'Put #readfilenum, , arr
'End If
'arr1 = StrConv(RichTextBox1.Text, vbFromUnicode)
i = 0
For k = 1 To filelen
arr(i) = CByte(Asc(Mid(RichTextBox1.Text, k, 1)))
'arr(i) = arr1(k)
If i >= ARR_NUM - 1 Then
Put #readfilenum, , arr
'Debug.Print arr
i = 0
ReDim arr(0 To ARR_NUM - 1) As Byte
Else
i = i + 1
End If
Next
Put #readfilenum, , arr
Close #readfilenum
MsgBox "文件保存成功!"