用什么函数可以取得一个字符串的字节数?

LiaoCheng 2004-10-05 06:53:38
用什么函数可以取得一个字符串的字节数?
RT
...全文
528 12 打赏 收藏 转发到动态 举报
写回复
用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
内容概要:本文围绕“基于鲁棒优化与KKT条件的微电网经济调度方法研究”展开,提出了一种适用于不确定性环境下的微电网两阶段鲁棒优化调度模型。通过引入鲁棒优化理论,增强系统对风光出力波动、负荷变化等不确定因素的适应能力,并结合KKT(Karush-Kuhn-Tucker)条件对优化问题进行数学建模与求解,确保各类运行约束的有效满足。研究采用Python编程实现完整的算法流程,涵盖模型构建、变量定义、约束处理及求解器调用,实现了运行成本最小化与系统稳定性的协调优化。该方法具有较强的工程适用性和理论深度,属于高水平科研复现工作,可用于EI级别期刊论文的算法验证与案例分析。; 适合人群:具备电力系统基础知识和Python编程能力,从事微电网优化、可再生能源调度、鲁棒优化与智能算法研究的研究生、科研人员及工程技术开发者。; 使用场景及目标:①构建并求解微电网两阶段鲁棒优化调度模型,提升系统在不确定性下的经济性与可靠性;②支撑高水平学术论文(如EI期刊)的算法复现与结果验证,强化研究工作的严谨性与可重复性;③为含高比例可再生能源的电力系统提供科学、高效的经济调度解决方案。; 阅读建议:建议读者结合YALMIP、Pyomo等优化建模工具与Python求解环境,动手实践代码实现过程,重点关注KKT条件的转化逻辑、列约束生成(C&CG)算法的迭代机制以及鲁棒不确定集的建模方式,同时参考提供的网盘资源获取完整代码与测试案例数据,以深化对整体方法的理解与应用。
内容概要:本文聚焦于基于多元宇宙优化算法(MVO)的主动配电网优化调度研究,针对“源-荷-储”协同互动背景下的电力系统运行问题,构建了以降低运行成本、减小网损、提升供电可靠性为目标的多目标优化模型,并采用MVO算法对IEEE33节点配电系统进行求解。研究详细阐述了算法的设计思路与实现流程,提供了完整的Matlab代码实现方案,支持仿真复现与性能验证。同时,文档还整合了大量相关科研方向的复现案例,涵盖微电网调度、鲁棒优化、路径规划、机器学习预测等多个前沿领域,突显其在现代电力系统优化中的广泛应用价值和技术延展性。; 适合人群:具备电力系统基础理论知识和Matlab编程能力,正在从事能源系统优化、智能算法应用或相关课题研究的高校研究生、科研人员及工程技术开发者。; 使用场景及目标:①应用于主动配电网中可再生能源接入、负荷波动与储能协调控制的经济性与稳定性优化调度;②为实现“双碳”战略目标下的新型电力系统提供“源-荷-储”协同调度策略支撑;③作为智能优化算法在电力工程领域落地的教学示范与科研参考案例。; 阅读建议:建议结合所提供的Matlab代码与IEEE33标准测试系统数据开展仿真实验,深入掌握多元宇宙优化算法的参数设置、收敛特性及在复杂约束条件下的求解机制,同时可参考文中列举的其他复现资源拓展研究视野与创新思路。
内容概要:本文系统阐述了基于MOPGA-NSGA-II框架的改进多策略自适应灰狼优化算法(IAGWO)的研究与实现,重点在于通过引入速度概念与逆多元二次权重机制,显著提升了传统灰狼优化算法在高维复杂空间中的全局搜索能力、收敛速度与求解精度。该算法针对多目标、多约束、非线性强的工程优化难题进行了有效改进,具备良好的鲁棒性与实用性。文章不仅提供了完整的Matlab代码实现,便于算法复现,还展示了其在电力系统调度、路径规划、参数辨识、深度学习预测等多个前沿科研与工程领域的成功应用案例,充分体现了其强大的跨学科应用潜力和科研价值。; 适合人群:具备一定编程基础,熟练掌握Matlab或Python语言,从事智能优化算法研究、工程优化设计或相关领域科研工作的研究生、高校教师及具有实践经验的研发工程师。; 使用场景及目标:①用于高效复现高水平学术论文中的先进优化算法,加速科研进程;②解决微电网经济调度、电动汽车多目标路径规划、光伏系统参数辨识等实际工程中的复杂优化问题;③作为智能优化算法的学习与创新平台,为算法改进、新模型构建提供坚实的技术基础和代码参考。; 阅读建议:建议读者结合提供的网盘资源与公众号资料,按照目录结构循序渐进地学习,重点关注IAGWO算法的核心改进机制、参数设置原理及其在不同应用场景下的模型构建方法,务必动手运行并调试代码,通过实践深化对算法内在逻辑的理解,充分发挥其作为科研“借力”工具的作用,助力自身课题取得创新性突破。

7,789

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧