- 25/10/06
- 293
- 0
code đây
http://www.mediafire.com/?2ddydmnjomm
ai hiểu gì thì hiểu nhé
tại hơi gà nên code hơi rối chút
cái này đọc ghi file theo bytes
mà chả biết code bị gì mà ghi xong rồi dư byte 00 ở cuối file, ghi xong xài Flexhex mà xóa đi nhé
Mã:
Option Explicit
Dim noidung() As Byte
Private Sub Command1_Click()
On Error Resume Next
Open "C:\Talk.dat" For Binary Access Read As #1
ReDim noidung(LOF(1))
Get #1, , noidung
Close #1
Dim fnum As Long, i, j
fnum = FreeFile()
Open "C:\Talk1.dat" For Binary Access Write As #fnum
For i = 0 To UBound(noidung)
If noidung(i) > 127 Then 'co dau tu 128 tro len
j = i Mod 257 ' moi "talk" 257 bytes
If j > 2 Then ' 2 bytes dau` la ID nen ko doi boy goi la byte rac' ^^
Put #fnum, , UniToASC(noidung(i))
Else
Put #fnum, , noidung(i)
End If
Else
Put #fnum, , noidung(i)
End If
Next
Close #fnum
End Sub
Private Sub Command2_Click()
On Error Resume Next
Open "C:\NPC.dat" For Binary Access Read As #2
ReDim noidung(LOF(2))
Get #2, , noidung
Close #2
Dim fnum As Long, i, j
fnum = FreeFile()
Open "C:\NPC1.dat" For Binary Access Write As #fnum
For i = 0 To UBound(noidung)
j = i Mod 92
If j > 4 Or j = 0 Then 'bo 4 bytes dau, byte cuoi ko doi
If noidung(i) > 127 Then
If j < 15 Then 'doi? bytes 5->14
Put #fnum, , UniToASC(noidung(i))
Else
Put #fnum, , noidung(i)
End If
Else
Put #fnum, , noidung(i)
End If
End If
Next
Close #fnum
End Sub
Private Sub Command3_Click()
On Error Resume Next
Open "C:\Item.dat" For Binary Access Read As #2
ReDim noidung(LOF(2))
Get #2, , noidung
Close #2
Dim fnum As Long, i, j
fnum = FreeFile()
Open "C:\Item1.dat" For Binary Access Write As #fnum
For i = 0 To UBound(noidung)
j = i Mod 370 'moi item 370 bytes
If j > 20 And j < 117 Then ' chi doi? tu byte 21->116
Put #fnum, , noidung(i)
Else
If noidung(i) > 127 Then
Put #fnum, , UniToASC(noidung(i))
Else
Put #fnum, , noidung(i)
End If
End If
Next
Close #fnum
End Sub
Public Function UniToASC(bytes As Byte) As Byte
Dim UNI$, ASC$, i As Long, sASC$, arrASC(), arrUNI()
'UNI = "80,84,C0,C1,C2,C3,C4,C5,8D,8E,C8,C9,CA,CB,CC,CD,CE,EE,EF,90,91,B3,B4,D2,D3,D4,,9D,9E,B9,BA,BB,BC,BF,D9,DA,9F,A1,A2,A3,A4,A5,A6,A7,C6,C7,D5,E0,E1,E2,E3,E4,E5,E7,A8,A9,AA,AB,AC,AD,AE,E8,E9,EA,EB,B8,EC,ED,EE,EF,AF,B0,B1,B2,B5,B6,B7,BD,BE,DE,F2,F3,F4,F5,F6,F7,FE,D2,D7,D8,DF,E6,F1,F8,F9,FA,FB,FC,FF,CF,D6,DB,DC,FD,D0,F0"
'ASC = "A,A,A,A,A,A,A,A,E,E,E,E,E,E,I,I,I,I,I,O,O,O,O,O,O,O,U,U,U,U,U,U,U,U,U,Y,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,e,e,e,e,e,e,e,e,e,e,e,i,i,i,i,i,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,u,u,u,u,u,u,u,u,u,u,u,u,y,y,y,y,y,D,d"
arrUNI = Array(128, 132, 192, 193, 194, 195, 196, 197, 141, 142, 200, 201, 202, 203, 204, 205, 206, 144, 145, 179, 180, 210, 211, 212, 157, 158, 185, 186, 187, 188, 217, 218, 159, 161, 162, 163, 164, 165, 166, 167, 198, 199, 213, 224, 225, 226, 227, 228, 229, 231, 168, 169, 170, 171, 172, 173, 174, 232, 233, 234, 235, 184, 236, 237, 238, 239, 175, 176, 177, 178, 181, 182, 183, 189, 190, 222, 242, 243, 244, 245, 246, 247, 254, 209, 215, 216, 223, 230, 241, 248, 249, 250, 251, 252, 255, 207, 214, 219, 220, 253, 208, 240)
arrASC = Array(65, 65, 65, 65, 65, 65, 65, 65, 69, 69, 69, 69, 69, 69, 73, 73, 73, 79, 79, 79, 79, 79, 79, 79, 85, 85, 85, 85, 85, 85, 85, 85, 89, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 105, 105, 105, 105, 105, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 121, 121, 121, 121, 121, 68, 100)
For i = 0 To UBound(arrUNI())
If bytes = arrUNI(i) Then
bytes = arrASC(i)
End If
Next
UniToASC = bytes
End Function
Public Function StringToHex(sMessage As String) As String
Dim i As Integer
Dim sHex As String
For i = 1 To Len(sMessage)
sHex = Hex(ASC(Mid(sMessage, i, 1)))
If Len(sHex) < 2 Then sHex = String(2 - Len(sHex), "0") & sHex
StringToHex = StringToHex & sHex
Next
End Function
Public Function HexToString(sMessage As String) As String
Dim i As Integer
For i = 1 To Len(sMessage) Step 2
HexToString = HexToString & Chr(Int("&h" & Mid(sMessage, i, 2)))
Next
End Function
ai hiểu gì thì hiểu nhé

tại hơi gà nên code hơi rối chút
cái này đọc ghi file theo bytes
mà chả biết code bị gì mà ghi xong rồi dư byte 00 ở cuối file, ghi xong xài Flexhex mà xóa đi nhé
người ta kêu thế thì biết vậy thôi






