如何使用 VBScript 比较数组与数组?

2024-01-03

我想检查我的文件中的数据是否存在于我拥有的数组数据中。如果退出则返回1,退出则返回0。我的文件里面是这样的:



2j2H4F6d9d0d3hdfasgt.y7
  

但我剪掉了最后两行。我的数组数据是这样的:[2w fr 5k 2j 0w]。我想检查我的数组数据是否存在于我的文件中。

Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20

XX = 0

Set wshShell = CreateObject("WScript.Shell")

strFBString = wshShell.ExpandEnvironmentStrings("%FB%")

WScript.Echo "==>"
WScript.Echo "strFBString: " & strFBString

Set wshShell = Nothing

For i = 1 To Len(strFBString) Step 2
    If StrComp(Mid(strFBString, i, 2), [2w fr 5k 2j 0w]) = 0 Then
        XX = 1
    End If
Next

WScript.Echo "XX: " & XX

WScript.Quit(XX)

一方面,[2w fr 5k 2j 0w]不是 VBScript 中的有效数组定义。如果你想用这 5 个字符串元素定义一个数组,你需要这样做:

Array("2w", "fr", "5k", "2j", "0w")

Also, StrComp()用于将一个字符串与另一个字符串进行比较。它不支持将字符串与数组进行比较。为了将字符串与数组的每个元素进行比较,您需要一个循环。不过,如何构建该循环取决于您想要实现的结果。

查看您的代码,您似乎想在其中找到匹配项2j2H4...,但不在w2j2H...,所以简单地使用InStr()可能不适合你。在这种情况下,您可以使用内部循环进行比较:

ref = Array("2w", "fr", "5k", "2j", "0w")
For i = 1 To Len(strFBString) Step 2
    For Each s In ref
        If Mid(strFBString, i, 2) = s Then
            '...
        End If
    Next
Next

但正如我已经说过的,细节取决于所需的最终结果。如果你想检查你的输入字符串是否包含any的数组值,你可以这样做:

ref   = Array("2w", "fr", "5k", "2j", "0w")
found = False
For i = 1 To Len(strFBString) Step 2
    For Each s In ref
        If Mid(strFBString, i, 2) = s Then
            found = True
            Exit For
        End If
    Next
Next

另一方面,如果您想检查输入字符串是否包含all的参考字符串,你可能会这样做:

ref   = Array("2w", "fr", "5k", "2j", "0w")
For Each s In ref
    found = False
    For i = 1 To Len(strFBString) Step 2
        If Mid(strFBString, i, 2) = s Then
            found = True
            Exit For
        End If
    Next
    If Not found Then Exit For
Next

您还可以使用完全不同的方法,例如将数据放入字典中:

data = CreateObject("Scripting.Dictionary")
For i = 1 To Len(strFBString) Step 2
    data(Mid(strFBString, i, 2)) = True
Next

使用这种方法,您可以检查数据是否包含任何参考值,如下所示:

found = False
For s In Array("2w", "fr", "5k", "2j", "0w")
    If data.Exists(s) Then
        found = True
        Exit For
    End If
Next

或者检查数据是否包含所有参考值,如下所示:

found = True
For s In Array("2w", "fr", "5k", "2j", "0w")
    If Not data.Exists(s) Then
        found = False
        Exit For
    End If
Next
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 VBScript 比较数组与数组? 的相关文章

随机推荐

  • 如何在 ActiveAdmin 上过滤布尔列?

    这个问题与活动管理员 https github com gregbell active admin宝石 我正在尝试过滤具有布尔类型的列 但没有成功 filter column name and filter column name as g
  • 用json、python保存键为元组的字典

    我正在用 python 编写一个小程序 并且使用一个字典 其 如标题所示 键和值是元组 我尝试使用 json 如下 import json data 1 2 3 a b c 2 6 3 6 3 2 print json dumps data
  • -D_DEFAULT_SOURCE 的作用是什么?

    之前我收到过来自gcc std c99 that usleep 被隐含地声明了 然后我偶然发现这个 stackoverflow 帖子 https stackoverflow com a 10053817 2002146 这导致我使用 D B
  • 整数真常数的类型是什么?

    很抱歉问了一个非常基本的问题 考虑以下示例 const c1 1 Is this Byte or ShortInt c2 1234 Is this Word or Smallint c3 123456 Is this Cardinal or
  • C# - 如何使用自定义字体而不将其安装在系统中

    我再次需要你的帮助 我正在 C 上开发一个使用自定义字体的小型应用程序 问题是 字体必须预先安装在系统上 如果系统中不存在该字体 则仅使用 Times New Roman 有没有什么方法可以将字体文件嵌入到应用程序中 这样就不需要在每个系统
  • Vue 或 Axios 不存储会话 cookie

    我遇到了问题 但我不知道问题出在哪里以及为什么 我有一个基于express4 nodejs 的后端API我们已经使用护照实现了Auth 当我使用邮递员时 我使用 login 上的 post 进行登录 它存储一个会话 cookie 并且所有路
  • JavaScript 无法找到元素 id

    我的 javascript 函数位于 javascript 文件中 因为该函数使用了我页面的大部分内容 function setSecondaryItem var select document getElementById var len
  • 从字符串创建 Pandas DataFrame

    为了测试一些功能我想创建一个DataFrame来自字符串 假设我的测试数据如下 TESTDATA col1 col2 col3 1 4 4 99 2 4 5 200 3 4 7 65 4 3 2 140 将数据读入 Pandas 的最简单方
  • _declspec 和 __declspec 之间的区别?

    我有时会看到关键字以两个下划线开头 有时则只有一个 有什么区别吗 我相信 declspec是同一 Microsoft 特定关键字的旧名称 declspec 从 C 标准的角度来看 对于这样的扩展 两个下划线比单个下划线更正确 根据 17 4
  • 创建或附加到字典中的列表 - 可以缩短吗?

    可以使用 itertools 和 set 缩短此 Python 代码并仍然可读吗 result for widget type app in widgets if widget type not in result result widge
  • 如何在某种条件下跳过第一个活动

    我正在将一组应用程序构建为类似于 MS Office 的包 这里每个应用程序都有自己的启动器 并且可以从家庭应用程序内部启动 每个应用程序都有一个登录页面 当应用程序从 android 启动器启动时 我需要显示登录页面 而从家庭应用程序启动
  • 如何以编程方式强制停止应用程序 - Android

    我想从我的 Android 应用程序中强制停止应用程序 而不是通过 Man apps gt force stop 手动执行 如何实现这一目标 Process killProcess Process myPid
  • 在 CSS 缩放画布中获取正确的鼠标位置

    我一直在尝试采用几个简单的 MooTools 操作的逻辑并将其转换为与 jQuery 一起使用 我想要的逻辑是这样的jsfiddle http jsfiddle net rQkSF 它允许通过 css 调整大小来获得画布元素上准确的鼠标位置
  • 如何绘制宽度不等的直方图而不从原始数据计算?

    Matplotlib 的hist http matplotlib org api pyplot api html matplotlib pyplot hist说 计算并绘制 x 的直方图 我想做一个情节without首先计算任何东西 我有箱
  • iOS10 中的动画导航栏 barTintColor 更改不起作用

    我升级到 XCode 8 0 iOS 10 现在导航栏的颜色变化动画不再起作用 它直接改变颜色 没有任何动画 UIView animateWithDuration 0 2 animations self navigationControll
  • 如何在android中获取设备的最大宽度和高度

    您好 我在为 Android 应用程序创建自定义视图时遇到问题 如果允许 我的自定义视图想要使用最大屏幕宽度 我找不到任何方法来检索该值 有人能指出我正确的方法吗 Try mWinMgr WindowManager context getS
  • a 的 b 次方,不带 (a**b),Python

    正在努力完成一项要求我在没有此运算符的情况下编写 a b 的练习 尝试自己写一些东西 但没有得到正确的结果 我得到的不是一个值 而是两个 两者都不正确 看起来计数器并没有真正增加 我可以寻求帮助吗 谢谢 def powerof base e
  • 在 Xcode ≥ 7.3 中处理私有框架

    在 Xcode 7 3 iOS 9 3 中 Apple 删除了所有私有框架 https developer apple com library ios releasenotes DeveloperTools RN Xcode Chapter
  • 控制台应用程序中的倒计时器[重复]

    这个问题在这里已经有答案了 我有一个控制台应用程序 我想创建一个倒计时器 这是我尝试过的 static void Main string args for int a 10 a gt 0 a Console Write Generating
  • 如何使用 VBScript 比较数组与数组?

    我想检查我的文件中的数据是否存在于我拥有的数组数据中 如果退出则返回1 退出则返回0 我的文件里面是这样的 2j2H4F6d9d0d3hdfasgt y7 但我剪掉了最后两行 我的数组数据是这样的 2w fr 5k 2j 0w 我想检查我的