51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4120|回复: 4
打印 上一主题 下一主题

求助:silkperformer中怎样使用BDL语言将字符串转化成十六进制

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-3-3 22:47:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教各位高手,在silkperformer中如何使用BDL语言将一个字符串转化成十六进制?
比如原字符串为“test”,转化后变成0x74657374

谢谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2008-3-5 16:58:01 | 只看该作者

没有BDL……

如题。

我知道的有2个方法。
1) SP自带一个工具叫Unicode Text/Hex Editor,挺方便的,你也可以call它的dll。
2) 自己写……

我给你一个例子(UTF-8)的,其他的你可以看情况改改……
/* Start Code Dummy */
use "Kernel.bdh"

dll "kernel32.dll"
  "WideCharToMultiByte"
    function WideCharToMultiByte(in number, in number, ptr, in number, ptr, in number, in number, in number):number;

const
  CP_UTF8 := 65001;

dcluser  
  user
    VUser
  transactions
    TMain        : 1;

dclfunc
  function fAscii2Utf8(sSource: string): string <API_FUNCTION>
  var
    sMultiByte,
    sHex,
    sHexAsString,   
    sWide         : string;
    nLen          : number;
  begin
    StrAnsi2Unicode(sWide, Strlen(sSource)*2, sSource);

    nLen := Binlen(sWide);

    WideCharToMultiByte(CP_UTF8, 0, sWide, -1, sMultiByte, nLen*4+1, null, null);

    writedata(sMultiByte, binlen(sMultiByte), OPT_WRITEDATA_HEX);
   
    Bin2Hex(sMultiByte, STRING_COMPLETE, sHexAsString);
   
    sHexAsString := "\\h"+sHexAsString;
    print("fAscii2Utf8("+sSource+") = "+sHexAsString);

    fAscii2Utf8 := sMultiByte;
  end fAscii2Utf8;  

dcltrans
  transaction TMain
  var
  begin
    print(fAscii2Utf8("M?));
  end TMain;

/* End Code Dummy */

希望有帮助……
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2008-3-6 10:13:30 | 只看该作者
非常感谢jmy提供的思路,我试试看。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2008-3-6 18:56:30 | 只看该作者
jmy老兄,我写了一个DLL文件,但是不懂怎么才能加载才能调用它.
我应该把它放在哪个位置里呢? 还有,生成这个DLL的源函数需不需要也放到相应的目录下?
谢谢!

其他大侠如果知道的也教教小弟哈.
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2008-3-10 17:34:01 | 只看该作者

我在调用系统dll的时候是不用特殊修改的……

如题。

我是直接调用的,比如:
dll "kernel32.dll" //uses kernel32
"GetSystemTime" //kernel32 function called
function GetSystemTime(inout string);


如果你是自由动态库的,我觉得最多给出路径,应该就可以了。
希望有帮助。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-9 09:22 , Processed in 0.070155 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表