用vbs将名称截断以使其最多包含 16 个字符的代码

问:
您好,脚本专家!如何将名称截断以使其最多包含 16 个字符?
-- BN
答:
您好,BN。打起精神来:我们又要开始记忆长廊之旅了。曾经有个脚本专家上大学的时候,他在绿巨人公司找了一份暑期临时工,任务就是在办公室里监督华盛顿东部的芦笋收割。当时,绿巨人有一个陈旧笨重的计算机系统,用来记录芦笋的数量 - 然后再记录要付给所有收割者多少钱。这个系统有一个问题,但是(事实上,它的问题不只一个,不过 …):它被设置为姓氏最多可使用 10 个字符,而许多工人的姓都比 10 个字符要长(例如,Myer-Ackerman)。每次数据输入人员输入一个比 10 个字符长的名称时,整个系统都会锁死,因此他们的工作站常常必须重新启动。(这都是在出现 Microsoft Windows 之前的事了。)
这个脚本专家那时根本谈不上是脚本专家;事实上,他使用计算机的经验主要局限于在 Commodore 64 上玩 Zork。可是现在,作为办公室里唯一的大学生,他被委任以修复此数据输入程序的重任(幸运的是,数据库本身没有这种限制)。他的工作就是在程序试图将名称保存到数据库之前,确保截断所有多于 10 个字符的名称。
换句话说,这与您需要完成的任务非常相似。那时我们的脚本专家工作在 BASIC 的某个专有分支领域,他的解决方案就是使用 Left 函数获取某个名称的前 10 个字母,并以此来作为此工人的姓。现在,差不多 20 年之后,想想您的问题的解决方案是什么?


代码如下:

strName = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" 
strName = Left(strName, 16) 
Wscript.Echo strName

经典的解决方案从来不会过时,是吧?这个脚本从我们 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.Echo strName
幸运的是答案是否定的:此脚本会顺利运行。如果某字符串少于 16 个字符,则 Left 函数只获取它所能找到的所有字符,并将此值赋值给 strName。在本例中,strName 等于 ABCD,此字符串中仅有的 4 个字符。
现在,再缅怀一下过去的美好时光。我们告诉过您当这个脚本专家正坐在他的绿巨人办公室里时,一条响尾蛇爬进来吗?这是真的。他正坐在那儿,努力思考将姓限制为 10 个字符的方法,正在这时 -- 天哪;今天的时间到了。我们必须改天再继续讲这个故事了。

(0)

相关推荐

  • 用vbs将名称截断以使其最多包含 16 个字符的代码

    问: 您好,脚本专家!如何将名称截断以使其最多包含 16 个字符? -- BN 答: 您好,BN.打起精神来:我们又要开始记忆长廊之旅了.曾经有个脚本专家上大学的时候,他在绿巨人公司找了一份暑期临时工,任务就是在办公室里监督华盛顿东部的芦笋收割.当时,绿巨人有一个陈旧笨重的计算机系统,用来记录芦笋的数量 - 然后再记录要付给所有收割者多少钱.这个系统有一个问题,但是(事实上,它的问题不只一个,不过 -):它被设置为姓氏最多可使用 10 个字符,而许多工人的姓都比 10 个字符要长(例如,Myer

  • JS弹窗 JS弹出DIV并使整个页面背景变暗功能的实现代码

    1.首先写一个遮罩层div,然后再写一个弹窗的div <!-- 遮罩层 --> <div id="cover" style="background: #000; position: absolute; left: 0px; top: 0px; width: 100%; filter: alpha(opacity=30); opacity: 0.3; display: none; z-index: 2 "> </div> <!

  • JavaScript中正则表达式使数字、中文或指定字符高亮显示

    <span id="span_id">span2314的23文本213</span> var htmlobj = txt.replace(/(\d+)/img, "<span style='background:red;'>$&</span>"); //var htmlobj = txt.replace(/([+\-]?[0-9]+(\.[0-9]+)?)/g, "<span style='ba

  • 用vbs将名称转换为正确的大小写的代码

    问: 您好,脚本专家!我有一个脚本,我的帮助支持人员用它来创建用户帐户.不幸的是,有时这些帮助支持人员在忙乱中会键入类似这样的名称:kEn MYEr.如何将名称转换为正确的大小写(即 Ken Myer)呢? -- LC 答: 您好,LC.您知道吗:您真幸运.谈到正确行事,脚本专家通常便是您最不愿意找的人.事实上,就我们所知,只有一种情况例外,那便是将名称转换为正确的大小写,即,使名称中的首字母大写,而使其余字母小写.这一点我们还是可以办到的. 注意:嘿,每个人都得能够做点什么.尽管我们更希望能投

  • vbs 调用中文语音让你电脑听你的命令的实现代码

    如果你机器本身装了office的话,可能不需要装以下软件,我机器由于装的是openoffice,所以我提前装了 speechsdk51.exe CNSpeechPackage.msi 这两个软件.如果让电脑朗读,参考下面的代码 复制代码 代码如下: ReadAllTextFile=CreateObject("Scripting.FileSystemObject").OpenTextFile(Wscript.Arguments(0), 1).ReadAll Function RegExp

  • 用vbs产生的若干个随机数并写入到一个.txt中的代码

    复制代码 代码如下: Set a=WScript.CreateObject("WScript.Shell") a.Run "notepad" '打开记事本 do Randomize x= Int((40 * Rnd) + 1) '产生一个1~40的随机数赋给X WScript.Sleep 1000 a.SendKeys x&"," '模拟键盘,输出x n=n+1 '累计器 if n=10 then wscript.quit '若累计器N为

  • VBS 脚本中的字典、动态数组、队列和堆栈实现代码

    1.编写环境 今天突发奇想下载了个gVim来写VBS脚本,我用的版本是7.4的 在写脚本前,需要在gVim的安装根目录下,找到文件"_vimrc",在里面添加下面三行: set number set softtabstop=4 set tabstop=4 意思分别是"显示行号"."按退格键一次删掉4个空格"和"设定Tab长度为4个字符" 这个设置类似于Linux系统下文件".vimrc"的配置 1.字典:S

  • 字符ANSI代码查询工具vbs版

    复制代码 代码如下: x=InputBox("请输入字符","提示","Test") If Len(x)<>0 then For i=1 To Len(x) WScript.echo "字符 [" & Mid(x,i,1) & "] ANSI代码为: " & Asc(Mid(x,i,1)) Next Else MsgBox "请输入英文字符",64,&

  • iOS开发中使app获取本机通讯录的实现代码实例

    一.在工程中添加AddressBook.framework和AddressBookUI.framework 二.获取通讯录 1.在infterface中定义数组并在init方法中初始化 复制代码 代码如下: NSMutableArray *addressBookTemp;   - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {     addressBookTemp = [NSMut

  • php使HTML标签自动补全闭合函数代码

    简单解释一些代码: 第一个 ~(<[^>]+?>)~si 这个正则是匹配<--->中的内容.简单说是所有的<标签>. 第二个 ~<([a-z0-9]+)[^/>]*?/>~si 这个正则是匹配<--/>中的内容.是单闭合标签 如<br /> 第三个 ~</([a-z0-9]+)[^/>]*?>~si 这个正则是匹配</......>中的内容.也就是结束标签 如</a> 第四个 ~&

随机推荐