首页 Soft PlugIn RAN乱 Dev开发 Info资料 English WAP 留言 登陆 注册
-
Posted by Yippee | 评论(1) | 引用(0) | 阅读2098次
BCD STRING VB编码

VB互转BCD和字符串

bcd string c# http://www.shengfang.org/blog/p/vsnetbcdstring.php

Java str2bcd 压缩BCD编码 http://www.shengfang.org/blog/p/javabcd.php

今天有人问我一段数据是否正确,我一看格式,本来希望是二进制的,结果是文本方式的。

FFh, FFh, FFh, FFh, FFh, FFh, FFh, FFh

C3h, 5Bh, 39h, 86h, 5Dh, FFh, E9h, 4Ch大抵这种样子

一下子想不到什么工具可以转换,干脆就自己写一个吧,虽然微软不是开源的,不过我想也没有几个人在LINUX下面改内核写驱动吧。 www.shengfang.org

看了看,虽然看上去三个一组,中间用,分割,好像还有一个空格,中间还分行。还是比较懒惰,想想先用EDITPLUS编辑替换。 www.shengfang.org

替换所有的h, ,替换所有的\N,最后合并成为了一行,好像里面还有H,可能由于位置的关系,没有替换到,反正这里面都是十六进制数据,不可能有H,又全部替换H。

代码如下: www.shengfang.org

Private Sub Command1_Click()
Dim l As Long
l = FileLen("c:\1.txt")
Dim ss As String
Open "c:\1.txt" For Input As #1
' 若要以其他方式打开文件,必需先关闭此文件。
    ss = Input(l, #1)

Close #1
'Debug.Print ss
Dim i As Integer
Dim b() As Byte
ReDim b(l / 2)
Open www.shengfang.org "c:\1.bin" For Binary As #2
For i = 0 To l / 2 - 1
'    Debug.Print Mid(ss, i * 2 + 1, 2)
    b(i) =  www.shengfang.org CByte("&h" + Mid(ss, i * 2 + 1, 2))
   
Next
Put #2, , b
Close #2
End Sub

Private Sub Command2_Click()
Dim s As String
s = "31" www.shengfang.org
Dim b As Byte
b = www.shengfang.org  CByte("&h" + s)
Debug.Print Hex(b)
End Sub
这个是测试代码,演习一下BCD2STR/STRING2BCD,压缩BCD编码和字符串的互转。这个真是太简单了

最后转换结果多了一个BYTE,因为VB的数组定义和VC不一样 :)

设定上下界
声明数组时,在数组名之后跟一个用括号括起来的上界。上界不得超过 Long 数据类型的范围(-2,147,483,648 到 2,147,483,647)。例如,下列数组声明可出现在模块的声明段:

Dim Counters (14) As Integer         '15 个元素。
Dim Sums (20) As Double            '21 个元素。

为建立公用数组,直接用 Public 取代 Dim。

Public Counters (14) As Integer
Public Sums (20) As Double

在过程之中同样的声明使用 Dim:

Dim Counters (14) As Integer
Dim Sums (20) As Double www.shengfang.org

第一个声明建立了一个有 15 个元素的数组,其索引号从 0 到 14 。第二个声明建立了一个有 21 个元素的数组,其索引号从 0 到 20 。缺省的下界为 0。

为了规定下界,用关键字 To 显式提供下界(为 Long 数据类型):

Dim Counters (1 To 15) As Integer
Dim Sums (100 To 120) As String

在前述声明中,Counters 的索引值范围从 1 到 15,而 Sums 的索引值范围从 100 到 200。

应该定义的时候少定义一个就行了


字体:

Permanant URI永久地址 http://www.shengfang.org/blog/p/vbbcdstr.php
Trackback URI引用地址 http://www.shengfang.org/blog/tb.php?tb_id=1124891396

2005年8月24日21:49星期三  [Dev开发] 追踪此文的RSS
internal在 2005年9月27日12:34星期二 评论:
垃圾Emotion
Yippee 回复于 2005年9月27日20:52
:)

称呼:    登陆   注册
   不注册,但记住我的信息
邮件:
(非必须)
评论: [UBB代码帮助]
粗体 斜体 下划线 链接 水平线 引用



验证码: 请输入你看见的数字
关闭UBB      提交时自动将内容复制到剪贴板

公告
Fire and Motion!

统计信息
[Yippee]||[统计]||日志:1790
在线: 17||用户: 2562 [列表]
今日:2438||到访:2671937
Rss:838514||评论:1584

最新日志

最新评论

友情链接

日历

最新引用

搜索

归档

杂项
Get RSS Feed (Version 2.0)
Get Atom Feed (Version 0.3)
编码:  UTF-8