A
aloze
Unregistered / Unconfirmed
GUEST, unregistred user!
代码:
Public Sub TxtToBin(strTxtFile As String, strBFile As String)
Dim TxtFileName As String
Dim BFileName As String
Dim BFileNum As Integer
Dim TxtFileNum As Integer
Dim Bytes_Num As Double
Dim Bytes() As Byte
Dim FileContent As String
Dim ch As Integer
Dim i As Double
Dim j As Integer
Dim n As Integer
Dim recCount As Double
On Error GoTo ErrorMsg
BFileName = strBFile
DoEvents
BFileNum = FreeFile
Open BFileName For Output As BFileNum
TxtFileName = strTxtFile
TxtFileNum = FreeFile
Open TxtFileName For Binary As #TxtFileNum
Bytes_Num = LOF(TxtFileNum)
ReDim Bytes(1 To Bytes_Num)
Get #TxtFileNum, , Bytes
Close TxtFileNum
n = 0
i = 1
'设置进度条显示相关变量
recCount = Bytes_Num
If recCount = 0 Then recCount = 1
Do While i <= Bytes_Num
'生成行首字串
FileContent = "00" & Format$(Hex$(&H20000 + i / 16), "@@@@@") & "010"
'生成一整行
For j = 0 To 15
'补足最后一行
If i + j > Bytes_Num Then
FileContent = FileContent & "00"
Else
'从以二进制读取的TXT文件中取元素
ch = Bytes(i + j)
'判断元素是否为空格,&H20为十六进制的空格
If ch = &H20 Then
n = n + 1
ElseIf (n < 4 And ch <> &H20) Then
n = 0
End If
'将读取元素转换成十六进制,并加入字串,并保证加入为两位十六进制数
If (ch < 16 And ch > 0) Then
FileContent = FileContent & 0 & Format$(Hex$(ch), "@")
Else
FileContent = FileContent & Format$(Hex$(ch), "@@")
End If
End If
Next j
'写到文件
Print #BFileNum, FileContent
i = i + 16
'设置进度条显示
Main.PBarMain.Value = Round(20 * i / recCount) + 45
Loop
Close BFileNum
Exit Sub
End Sub
谁能帮我把上面这段VB代码转为DELPHI?谢谢了