首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LotusScript中的VB ASCB?

LotusScript中的VB ASCB?
EN

Stack Overflow用户
提问于 2012-02-25 05:27:18
回答 2查看 501关注 0票数 0

致力于将Visual Basic SHA-256加密例程转换为在LotusScript中工作。

运行得很好,除了VB的AscB命令。

Found:“使用AscB函数返回包含字节数据的字符串的第一个字节。”

没有找到在LotusScript中做同样事情的方法。

请参见LS字节命令:"CByte返回一个已转换为字节的表达式。“

不要让它只返回表达式的第一个字节。

有什么建议吗?

德里克

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-25 07:06:52

AscB仅适用于采用单字节字符编码的字符串。所有的LotusScript字符串数据都是用UTF16双字节编码表示的Unicode。

Unicode Uni()函数返回一个包含LotusScript字符整数值的长整型。由于输入是双字节字符,因此Uni()返回的值的范围是从0到65535。如果您想要获取两个字节中每个字节的值,如下代码将完成此任务:

代码语言:javascript
复制
Dim ws As New NotesUIWorkspace
Dim s1 As String
Dim u1 As Long
Dim u2 As Long
Dim lowbyte As Integer
Dim highbyte As Integer
Dim b1 As Byte
Dim b2 as Byte

s1 = "Ʃ"    

u1 = Uni(s1)

lowbyte = u1 Mod 256
highbyte = (u1 - lowbyte) / 256

b1 = Cbyte(lowbyte)
b2 = Cbyte(highbyte)

Call ws.Prompt(prompt_ok,"test",s1 + " " + Cstr(Cint(b1)) + " " + Cstr(Cint(b2)))
票数 2
EN

Stack Overflow用户

发布于 2012-02-25 06:39:04

Asc、LeftB和RightB能满足你的需求吗?

在我的测试中。

代码语言:javascript
复制
Lenb("A") = 2

Leftb("A", 1) = "A"

Asc(Leftb("A", 1)) = 65

Leftb("A", 2) = "A"

Asc(Leftb("A", 2)) = 65

Asc(Rightb(Leftb("A", 2), 1)) = 0 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9438305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档