时间:2021-05-22
问:
您好,脚本专家!如何将名称截断以使其最多包含16个字符?
--BN
答:
您好,BN。打起精神来:我们又要开始记忆长廊之旅了。曾经有个脚本专家上大学的时候,他在绿巨人公司找了一份暑期临时工,任务就是在办公室里监督华盛顿东部的芦笋收割。当时,绿巨人有一个陈旧笨重的计算机系统,用来记录芦笋的数量-然后再记录要付给所有收割者多少钱。这个系统有一个问题,但是(事实上,它的问题不只一个,不过…):它被设置为姓氏最多可使用10个字符,而许多工人的姓都比10个字符要长(例如,Myer-Ackerman)。每次数据输入人员输入一个比10个字符长的名称时,整个系统都会锁死,因此他们的工作站常常必须重新启动。(这都是在出现MicrosoftWindows之前的事了。)
这个脚本专家那时根本谈不上是脚本专家;事实上,他使用计算机的经验主要局限于在Commodore64上玩Zork。可是现在,作为办公室里唯一的大学生,他被委任以修复此数据输入程序的重任(幸运的是,数据库本身没有这种限制)。他的工作就是在程序试图将名称保存到数据库之前,确保截断所有多于10个字符的名称。
换句话说,这与您需要完成的任务非常相似。那时我们的脚本专家工作在BASIC的某个专有分支领域,他的解决方案就是使用Left函数获取某个名称的前10个字母,并以此来作为此工人的姓。现在,差不多20年之后,想想您的问题的解决方案是什么?
复制代码 代码如下:
strName="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
strName=Left(strName,16)
Wscript.EchostrName
经典的解决方案从来不会过时,是吧?这个脚本从我们20年前停手的地方开始:它将一个很长的字符串(本例中为字母表)赋值给名为strName的变量:
strName="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
接下来是下面这行代码:
strName=Left(strName,16)
这行代码将一个新值赋给变量strName。那么这个新值是什么呢?它将是strName当前值的前16个字符。这就是Left函数的作用:它从此字符串的第一个字符开始计数,一直数到16个字符,就像这样:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
这16个字符,且仅这16个字符,将赋给变量strName。然后,回显strName的新值,我们会得到如下字符串:
ABCDEFGHIJKLMNOP
很酷吧。此脚本很有效,即使strName是从2600个字符的26个字符开始效果也一样:结果都是仅使用前16个字符。啊,但是如果字符串少于16个字符会怎么样?例如,此脚本会失败吗,因为它试图获取16个字符,而根本没有16个字符?
strName="ABCD"
strName=Left(strName,16)
Wscript.EchostrName
幸运的是答案是否定的:此脚本会顺利运行。如果某字符串少于16个字符,则Left函数只获取它所能找到的所有字符,并将此值赋值给strName。在本例中,strName等于ABCD,此字符串中仅有的4个字符。
现在,再缅怀一下过去的美好时光。我们告诉过您当这个脚本专家正坐在他的绿巨人办公室里时,一条响尾蛇爬进来吗?这是真的。他正坐在那儿,努力思考将姓限制为10个字符的方法,正在这时--天哪;今天的时间到了。我们必须改天再继续讲这个故事了。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
文件名的命名规则如下: 1、在文件名或文件夹名中,最多可以有255个字符。其中包含驱动器和完整路径信息,因此用户实际使用的字符数小于255。 2、可以使用扩
在C、C++中可以用32位int型变量表示单引号括起来的四个字符,例如下面代码中的示例:复制代码代码如下://字符c的16进制值是0x63,字符o的16进制值是
字符串连接函数:字符串连接就是将一个字符串连接到另一个字符串的末尾,使其组合成一个新的字符串,在字符串处理函数中,strcat函数具有字符串连接功能。下面是用C
创建一个字符串有几种方法。最简单的是用引号将一组字符包含起来,可以将其赋值给一个字符串变量。varmyStr="Hello,String!";可以用双引号或单引
Web前端使用Angular实现用户密码强度判别小记用户密码合法条件:1、8~16个字符2、只能包含数字,字母和”_”“.”(即不能含有非法特殊字符)3、数字,