社区
VB基础类
帖子详情
用什么函数可以取得一个字符串的字节数?
LiaoCheng
2004-10-05 06:53:38
用什么函数可以取得一个字符串的字节数?
RT
...全文
528
12
打赏
收藏
用什么函数可以取得一个字符串的字节数?
用什么函数可以取得一个字符串的字节数? RT
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
rainstormmaster
2004-10-06
打赏
举报
回复
用过VB5.0或者更早版本的读者应该知道VB有一个测试字符串长度的函数: Len。但当你升级到VB6时,会发现这里的Len并没有以前那么好用了——它变成了测试字符个数而不是字符串长度。就是说,当你用以前版本的VB执行Len("字符abc")时,返回值是7,因为中文字符每个有2个字节,所以总共有7个字节;而在VB6中执行,返回值是5。
VB6不再有一个直接计算出字符串总字节数的函数了,因为VB6内部已经把字符串转换成了Unicode——一种比ANSI更新的字符编码方式。
Unicode把每一个字,无论是中文还是其他文字都当成两个字节,如果是英文,则这两个字节中第二个字节保留着不使用,如果是双字节字符(如中文,双字节日文以及韩文),而由这两个字节的组合表示一个字符。所以Len可以方便地知道一共有多少个双字节字符,多少个单字节字符,也就出现了上面所说的情况。
不过既然VB内部把ANSI字符转换成Unicode,那么它一定有对应方法转换回来。所以这里提供一个比较方便的方法来得到总字节数: LenB(StrConv("字符abc", vbFromUnicode))。
这里用到了一个LenB() 函数,你可以自己试试它,比如 LenB("字符")、LenB("abc")、LenB("字符abc"),会发现返回值分别是4、6和10。
为什么是4、6和10呢?
我说过VB内部把ANSI字符转换为Unicode,每个Unicode字符用2个字节来表示,所以,LenB() 的作用是返回字符串的实际字节数。但是,这个实际字节数已经不是我所输入的字符串的,而是被VB转换过的(我们无法让VB函数在转换之前先算好长度),所以我们需要先把字符串转换回来,使用的是 StrConv() 函数。
对于这个函数我不想太过详细解释它(一般应用中比较少用),你可以参考MSDN,我只提一提它的第二个参数:vbFromUnicode。
StrConv()函数的第二个函数指定转换的类型,vbFromUnicode 指定把字符串从Unicode转换回来,如果是vbUnicode,则把字符串转换为Unicode。注意,虽然你的程序中写的是ANSI的字符而不是Unicode字符,但当这个函数执行时,它得到的却是已经被转换成为Unicode的字符串了。
现在问题可以算解决了,但我们还需要另一个解决方法,因为这种方法太费时。想想看,每一次算长度都要进行 Unicode->ANSI 的转换,这将会花费太多时间。对少量字符还可以,对长字符串,时间就变得更长了。
所以我们再讲一个API:lstrlen。
Public Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As String) As Long
以上是lstrlen的声明。lstrlen的作用只有一个:
得到以chr(0)为结尾的字符串的字节数。所以执行 lstrlen("字符abc"+chr(0)) 将返回7。我们不需要知道它内部是如何工作的,但它总是返回该字符串是ANSI时的长度,并且速度很快
chenyu5188
2004-10-06
打赏
举报
回复
lenB()
haohaohappy
2004-10-06
打赏
举报
回复
lenb不是可以嘛
xieyangf
2004-10-06
打赏
举报
回复
用LenB()函数
ryuginka
2004-10-06
打赏
举报
回复
LenB()函数
LiaoCheng
2004-10-06
打赏
举报
回复
to: rainstormmaster(暴风雨 v2.0) ( ) 信誉:228
你的回答太精彩了!!我喜欢!!
BlueBeer
2004-10-05
打赏
举报
回复
Len("ABC测试") = 5
LenB("ABC测试") = 10
LenB(StrConv("ABC测试", vbFromUnicode)) = 7
xiuyuan
2004-10-05
打赏
举报
回复
用lenb()函数在6.0和5.0版本中得到的结果是不一样的
rainstormmaster
2004-10-05
打赏
举报
回复
用lenb:
Dim s As String
s = "CSDN中国最大"
MsgBox LenB(StrConv(s, vbFromUnicode))
dongge2000
2004-10-05
打赏
举报
回复
dim s as string
s="CSDN中国最大"
me.print len(strconv(s,vbfromunicode)
laviewpbt
2004-10-05
打赏
举报
回复
len()函数
Private Sub Form_Load()
Dim str As String
str = "你好!you wish is my command!"
MsgBox Len(str)
End Sub
dongge2000
2004-10-05
打赏
举报
回复
UP
【顶级EI复现】基于鲁棒优化与 KKT 条件的微电网经济调度方法研究(Python代码实现)
内容概要:本文围绕“基于鲁棒优化与KKT条件的微电网经济调度方法研究”展开,提出了一种适用于不确定性环境下的微电网两阶段鲁棒优化调度模型。通过引入鲁棒优化理论,增强系统对风光出力波动、负荷变化等不确定因素的适应能力,并结合KKT(Karush-Kuhn-Tucker)条件对优化问题进行数学建模与求解,确保各类运行约束的有效满足。研究采用Python编程实现完整的算法流程,涵盖模型构建、变量定义、约束处理及求解器调用,实现了运行成本最小化与系统稳定性的协调优化。该方法具有较强的工程适用性和理论深度,属于高水平科研复现工作,可用于EI级别期刊论文的算法验证与案例分析。; 适合人群:具备电力系统基础知识和Python编程能力,从事微电网优化、可再生能源调度、鲁棒优化与智能算法研究的研究生、科研人员及工程技术开发者。; 使用场景及目标:①构建并求解微电网两阶段鲁棒优化调度模型,提升系统在不确定性下的经济性与可靠性;②支撑高水平学术论文(如EI期刊)的算法复现与结果验证,强化研究工作的严谨性与可重复性;③为含高比例可再生能源的电力系统提供科学、高效的经济调度解决方案。; 阅读建议:建议读者结合YALMIP、Pyomo等优化建模工具与Python求解环境,动手实践代码实现过程,重点关注KKT条件的转化逻辑、列约束生成(C&CG)算法的迭代机制以及鲁棒不确定集的建模方式,同时参考提供的网盘资源获取完整代码与测试案例数据,以深化对整体方法的理解与应用。
单片机C源码PCF8591模数与数模转换实验
单片机C源码PCF8591模数与数模转换实验
最新创新基于多元宇宙优化算法的考虑“源-荷-储”协同互动的主动配电网优化调度研究【IEEE33节点】(Matlab代码实现)
内容概要:本文聚焦于基于多元宇宙优化算法(MVO)的主动配电网优化调度研究,针对“源-荷-储”协同互动背景下的电力系统运行问题,构建了以降低运行成本、减小网损、提升供电可靠性为目标的多目标优化模型,并采用MVO算法对IEEE33节点配电系统进行求解。研究详细阐述了算法的设计思路与实现流程,提供了完整的Matlab代码实现方案,支持仿真复现与性能验证。同时,文档还整合了大量相关科研方向的复现案例,涵盖微电网调度、鲁棒优化、路径规划、机器学习预测等多个前沿领域,突显其在现代电力系统优化中的广泛应用价值和技术延展性。; 适合人群:具备电力系统基础理论知识和Matlab编程能力,正在从事能源系统优化、智能算法应用或相关课题研究的高校研究生、科研人员及工程技术开发者。; 使用场景及目标:①应用于主动配电网中可再生能源接入、负荷波动与储能协调控制的经济性与稳定性优化调度;②为实现“双碳”战略目标下的新型电力系统提供“源-荷-储”协同调度策略支撑;③作为智能优化算法在电力工程领域落地的教学示范与科研参考案例。; 阅读建议:建议结合所提供的Matlab代码与IEEE33标准测试系统数据开展仿真实验,深入掌握多元宇宙优化算法的参数设置、收敛特性及在复杂约束条件下的求解机制,同时可参考文中列举的其他复现资源拓展研究视野与创新思路。
Windows11安装PostgreSQL17.5[项目源码]
本文详细介绍了在Windows11系统上手动安装PostgreSQL17.5的步骤。首先,文章提供了环境准备的相关信息,包括虚拟环境安装建议和安装包的下载地址(官网和网盘)。接着,详细描述了安装过程中的关键步骤,如设置安装目录、数据目录、密码和端口等。安装完成后,文章指导用户如何使用pgAdmin进行登录,并介绍了常见的数据库操作,如查看当前连接用户、创建数据库、创建用户/角色、创建schema以及授权和回收权限等。最后,文章还讲解了如何修改配置文件以实现远程登录,并提供了远程客户端工具连接的指导。
改进多策略自适应灰狼优化算法(IAGWO)研究(Matlab代码实现)
内容概要:本文系统阐述了基于MOPGA-NSGA-II框架的改进多策略自适应灰狼优化算法(IAGWO)的研究与实现,重点在于通过引入速度概念与逆多元二次权重机制,显著提升了传统灰狼优化算法在高维复杂空间中的全局搜索能力、收敛速度与求解精度。该算法针对多目标、多约束、非线性强的工程优化难题进行了有效改进,具备良好的鲁棒性与实用性。文章不仅提供了完整的Matlab代码实现,便于算法复现,还展示了其在电力系统调度、路径规划、参数辨识、深度学习预测等多个前沿科研与工程领域的成功应用案例,充分体现了其强大的跨学科应用潜力和科研价值。; 适合人群:具备一定编程基础,熟练掌握Matlab或Python语言,从事智能优化算法研究、工程优化设计或相关领域科研工作的研究生、高校教师及具有实践经验的研发工程师。; 使用场景及目标:①用于高效复现高水平学术论文中的先进优化算法,加速科研进程;②解决微电网经济调度、电动汽车多目标路径规划、光伏系统参数辨识等实际工程中的复杂优化问题;③作为智能优化算法的学习与创新平台,为算法改进、新模型构建提供坚实的技术基础和代码参考。; 阅读建议:建议读者结合提供的网盘资源与公众号资料,按照目录结构循序渐进地学习,重点关注IAGWO算法的核心改进机制、参数设置原理及其在不同应用场景下的模型构建方法,务必动手运行并调试代码,通过实践深化对算法内在逻辑的理解,充分发挥其作为科研“借力”工具的作用,助力自身课题
取得
创新性突破。
VB基础类
7,789
社区成员
197,583
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章