VBScript 条件短路解决方法

2024-04-17

我有一个必须维护的大型经典 ASP 应用程序,并且我多次发现自己因缺乏短路评估能力而受挫。例如,VBScript 不会让你逃脱:

if not isNull(Rs("myField")) and Rs("myField") <> 0 then
...

...因为如果 Rs("myField") 为 null,则在第二个条件中将 null 与 0 进行比较时会出现错误。所以我通常会这样做:

dim myField
if isNull(Rs("myField")) then 
    myField = 0
else
    myField = Rs("myField")
end if

if myField <> 0 then
...

显然,冗长得令人震惊。环顾这个庞大的代码库,我发现最好的解决方法是使用原始程序员编写的函数,称为 TernaryOp,它基本上移植了类似三元运算符的功能,但我仍然坚持使用一个临时变量,该变量不会对于功能更齐全的语言来说是必要的。有没有更好的办法? VBScript 中确实存在某种超级秘密的短路方式吗?


嵌套 IF(只是稍微简洁一些):

if not isNull(Rs("myField")) Then
   if Rs("myField") <> 0 then
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VBScript 条件短路解决方法 的相关文章

  • SagePay 表单 - 经典 ASP - 使用 rijndael.asp 时缺少货币字段

    我正在尝试在经典 ASP 中添加 Form Intergration SagePay 支付网关 我有一个来自 SO 的可用 PHP 版本 我已将其翻译成 VBSCRIPT 一切似乎都工作正常 但加密除外 我使用与 PHP 脚本相同的输入 以
  • 并排启动两个资源管理器窗口

    有没有办法使用批处理脚本并排 垂直平铺 启动两个资源管理器窗口 如果没有 我该如何使用 VBS 来做到这一点 我已经修改了上面的VBS脚本Hackoo完全按照OP的要求去做 脚本中的注释准确地解释了它将做什么 如果两个窗口未设置到正确位置
  • 由 VBScript 运行的 xPath 中的未知方法

    错误消息是 msxml3 dll 未知方法 Record CelloXml Integration Case ServiceEvent gt last 我的代码如下所示 错误出在案例上NEW Case OLD可以很好地配合 0 在那里 On
  • 使用 VBScript 检查排序顺序

    假设我有一个数组 arr1 其中包含日期值 如下所示 Arr1 50 9 3 2012 4 57 02 AM 22 3 2012 5 57 02 AM 9 5 2012 8 57 02 AM 9 3 2011 4 57 02 上午 Edit
  • asp和iis 6.0从哪里获取其日期格式

    我发现了一个带有新网络服务器的小泡菜 我们有一个新的网络服务器 它显示的日期与我们旧的网络服务器不同 我们在 Windows Server 2003 的 IIS 6 0 上运行 asp 经典网页 我们以管理员身份登录并设置适当的区域设置 然
  • assessionid 名称更改

    如果我有一种简单的改变方法 我的生
  • 经典的 asp/vbscript - 使用正则表达式修改所有 href

    在经典 ASP VB 脚本 中 我需要通过对当前 url 进行编码并在其前面挂起来修改字符串中包含的多个不同的 href 基本上 我想让所有的 href 都通过我的redirect asp 并将现有的 href 编码传递到新链接中 例如 现
  • 什么时候必须将 XPath 属性设置为 XML DOM 对象?

    例如 Set objXML CreateObject Microsoft XMLDOM objXML async False objXML validateOnParse False objXML resolveExternals Fals
  • VBScript 中的对象/类字典

    vbscript 中是否可以有对象 类的字典 例如 Class employeeclass Public first last salary End Class Dim employeedict Set employeedict Creat
  • 即使通过“打开或关闭 Windows 功能”安装 ASP 支持后,也无法在 Windows 10 上运行经典 ASP 页面

    我收到此错误 处理 URL 时服务器发生错误 请联系系统管理员 如果您是系统管理员 请点击here https learn microsoft com en us iis application frameworks running cla
  • ASP Readline 非标准行结尾

    我正在使用 ASP 经典版ReadLine 文件系统对象的功能 一切都进展顺利 直到有人在 Mac 上使用 TextEdit 制作了导入文件 行结尾不相同 并且ReadLine 读入整个文件 而不是一次只读一行 有处理这个问题的标准方法吗
  • 如何防止 Internet Explorer 连接超时?

    如果网站处理和加载页面的时间超过 10 秒 Internet Explorer将做一个connection timeout 用户可以通过将注册表中的默认值设置为更高的值来防止这种情况发生 但我真的不能告诉我的任何客户这样做 所以我如何首先防
  • CreateObject() vbs 的对象列表

    我喜欢脚本 我不喜欢重新发明轮子 所以我喜欢 CreateObject您能给我指出一个可在 VBScript 上使用的广泛且有用的对象列表并附上简短说明吗 确实 我还没有找到超过 50 个的网站 提前致谢 我自己并不知道有这样的列表 但我知
  • 我对一些小概念感到困惑

    我对 VBscript 非常陌生 正在努力学习所有概念 在我的实践过程中 我一直有一个疑问 dim a b c set a CreateObject scripting filesystemobject initiate the file
  • SQL服务器超时

    我的应用程序是在经典 asp 上开发的 但也使用 asp net 因为我正在将应用程序迁移到 Net 上 它使用 SQL Server 作为数据库并托管在 Windows Server 2003 上 现在的问题是应用程序在很长一段时间内继续
  • 捕获 Unicode 文本(西里尔文)并将其插入 MS Access 数据库

    我继承了一个旧的 Web 应用程序 该应用程序使用经典 ASP 将表单中收集的数据写入 Access 2007 数据库 现在他们需要它能够收集西里尔字母的输入 我完全不熟悉代码页 字符集 也不熟悉非拉丁字母 我尝试将输入表单页面上的字符集更
  • 使用 cscript.exe 而不是 wscript.exe 在 VBScript 中执行文件

    我知道如何使用 wscript exe 执行 exe 如下所示 Set WshShell WScript CreateObject WScript Shell WshShell Run c myprogram exe 但我被迫使用 cscr
  • 在经典 ASP 中使用 Response.Write 进行调试

    我正在尝试使用调试一些代码Response Write 但是当我运行代码时 它会跳过该语句并在代码中的某个位置出现错误 我怎样才能得到我的Response Write语句来显示而不会出现其他错误 我经常使用Response End当我必须查
  • ELMAH 错误和经典 Asp

    我们已经在我们拥有的 ASP NET MVC 网站上使用 ELMAH 进行错误日志记录 但我们的主网站仍然是经典的 asp 我已经开始为该网站创建错误处理 日志记录结构 但我认为它如果我们能够在所有应用程序中保持错误日志记录的一致性 那就太
  • ADODB.Parameters 错误“800a0e7c”参数对象定义不正确。提供的信息不一致或不完整

    我主要是一名 PHP 开发人员 但我有一些旧的 ASP 我们以前的开发人员之一制作的它坏了 我不知道如何修复它 我们有一个程序 将一些变量发送到侦听器页面 该侦听器页面将该数据与 msSQL 数据库中的注册代码进行比较 然后让程序知道注册代

随机推荐

  • 如何在 Maven 3 站点插件中禁用测试 Javadoc 报告的生成?

    这是我的pom xml 我正在尝试禁用Test Javadoc报到site
  • 如何修复 VS Code 中的错误文件描述符错误?

    我有 vsc 版本 1 63 2 我收到以下通知 文件更改观察程序意外停止 重新加载窗口可能会再次启用观察程序 除非无法监视工作区的文件更改 在 窗口 日志 使用命令面板中的 开发人员 打开日志文件 命令打开 中 出现错误 renderer
  • 使用 R 中的传单库绘制跨越国际日期变更线的路线

    我有兴趣使用 R 的传单库绘制从滑铁卢到台湾的路线 路线的坐标是使用 geosphere 中的 gcIntermediate 函数获得的 然而 该路线涉及穿越国际日期变更线 因此该路线在地图边缘被切断 并在顶部与直线连接 我得到的情节 错误
  • JUnit 5 何时提供场景测试?

    在一次会议 JavaForum Stuttgart 2016 上 他们表示 JUnit 5 将包含一个支持场景测试的功能 http 2016 java forum stuttgart de de Abstracts Slot 1 html
  • Keras LSTM 输入形状的输入形状错误

    在 Keras 中使用时间序列时出现此错误 ValueError Error when checking input expected lstm 1 input to have 3 dimensions but got array with
  • Swift 中基于内容的动态 UITextView 大小

    我不认为有人可以指导我在仍然使用自动布局的同时动态调整 UITextView 大小的正确方法 使用 Swift 就是这样 我尝试以编程方式调整底部约束 试图让 UITextView 拥抱内容 但我不知道如何获取 UITextView 内容的
  • TinyMCE 在 DOM 中渲染后执行操作

    我正在使用 TinyMCE 4 并按如下方式设置 tinyMCE init mode specific textareas editor selector basicTinyMCE theme modern readonly false 我
  • 长度为 5 的回文数

    给定一个二进制字符串 S 找到长度为 5 的回文子序列的数量 长度为 5 的回文子序列是数组 a 我的想法 我想出了如下的递归 palin s palin s 1 palin s 1 palin s 1 1 当 s 0 s 1 时 就是上面
  • Tomcat:绕过指定 IP 地址的基本身份验证

    我已经配置 tomcat 进行基本身份验证 我不希望任何人访问我的 Web 应用程序 但该应用程序正在提供 Web 服务 所以我想从基本身份验证中绕过特定的IP地址 该IP不应该需要身份验证 tomcat users xml
  • Tomcat 8.5.29 HTTP/2 不支持 GZIP 压缩

    我正在使用 Tomcat 8 5 29 并使用相应的配置 我已为该站点启用了 HTTP2 支持 以下是 server xml 文件中的配置
  • set_index 不在 pandas 中建立索引

    对于下面的简单程序 我期望第二个输出与第一个输出相同 为什么这没有发生 这只是订单的改变data1 and data2 columnList PID Sec Util random data1 67123 12 85 100 67123 1
  • 以编程方式关闭 USB 端口的电源

    我正在开发一个项目 我想使用这些 http www woot com blog post usb powered woot off lights 2 http www woot com blog post usb powered woot
  • git 克隆失败并显示“ssh_dispatch_run_fatal”

    我已经配置了ssh密钥 但仍然无法成功git克隆 错误信息是 git clone email protected cdn cgi l email protection alimail frontend ragusa git Cloning
  • 使用 VBA 实现简单的替换密码

    我正在尝试编写一个程序来更改字符串中的字母 但我一直遇到一个明显的问题 即如果它更改了值 例如将 A 更改为 M 当它更改为 M 时 它会将 M 更改为其他值 因此 当我运行代码将其全部更改回来时 它会将其转换为好像该字母最初是 M 而不是
  • CommandError:使用 Flask-Migrate 迁移时无法找到由“...”标识的修订版本

    我今天开始使用 Flask Migrate 并将其安装在一个测试项目上 但是我收到以下错误 alembic util exc CommandError 无法找到由 e39d16e62810 重现步骤 运行 python create db
  • 如何避免子文件夹上的 svn:mergeinfos ?

    我们尝试仅将 svn mergeinfo 属性保留在根分支文件夹上 然而 我们不断看到它渗入子文件夹中 我们已经能够确定一些可能的原因 在存储库浏览器中移动文件夹 在 IntelliJ 中移动和 或重命名包 使用旧的 svn 客户端 任何人
  • 在azure devOps中,如何在项目中复制仪表板

    我在项目中创建了一个仪表板 并插入小部件来显示团队进度 目前 仪表板中有 2 个团队 每个团队有 8 个小部件 我想将它们分开 以便每个团队都有自己的个人仪表板 因为我不想真正从头开始制作它 所以我想复制它 然后删除其他团队在每个新的个人仪
  • FASM 是否使用 Intel 语法?

    我尝试在 FASM 中编译以下代码 mov DWORD PTR ebp 4 1234567 它给了我一个 无效表达式 错误 但是以下代码有效 mov DWORD ebp 4 1234567 那么 FASM 是否使用 Intel 语法 我假设
  • 如何使用 OOP 运行存储在容器中的实际对象的函数?

    如何使用 OOP 运行存储在容器中的实际对象的函数 背景 我正在编写一个游戏 有 4 间相连的房间 有两种不同的房间类型和两种不同的玩家类型 玩家应该作为线程运行 杀手应该在行动室中与普通玩家进行战斗 在第二种类型的房间里 不应该发生任何事
  • VBScript 条件短路解决方法

    我有一个必须维护的大型经典 ASP 应用程序 并且我多次发现自己因缺乏短路评估能力而受挫 例如 VBScript 不会让你逃脱 if not isNull Rs myField and Rs myField lt gt 0 then 因为如