VBScript 创建一个多维数组并添加到它?

2023-12-06

这对我来说太棒了哈哈,我几乎检查了谷歌搜索上的每个页面,但我仍然不明白该怎么做。

我想在 VB 脚本中创建一个名为 data2 的多维数组。 尝试我见过的示例,但出现“下标超出范围”错误

Dim data2()

sub grabdata
    SQL_query = "SELECT * FROM MSAccess_table"
    Set rsData = conn.Execute(SQL_query)
    Do Until rsData.EOF = True
        ReDim Preserve data2(UBound(data2) + 1)
        data2(UBound(data2)) = Array(rsData("id"),rsData("column_1"),rsData("column_2"),rsData("column_3"),rsData("column_4"))
    rsData.moveNext 
    Loop
end sub

基本上我正在尝试学习如何在 VB 脚本中创建多维数组并使用循环添加到其中。有哪些基本示例适用于我的案例?


(1) 将 ADO 结果集转换为二维数组的最佳方法是使用.GetRows方法。然后你的问题就消失了。

(2) VBScript中有两种数组。Fixed数组是通过指定其 UBounds 来声明的:

Dim aFix(2, 3)

它们无法调整大小。Dynamic数组可以通过以下方式更改ReDim [Preserve]。创建此类数组的最佳方法是

ReDim aDyn(2, 3)

如果您知道起始尺寸,或者

Dim aDyn : aDyn = Array()

如果你想从一个空的开始。问题 22 是:您只能对最后一个维度使用 Preserve。

(3) Your

Dim data2()

是一个令人厌恶的东西——一个没有大小的固定数组。可惜‘编译器’太愚蠢了,无法捕捉到VBScript无法正常处理的野兽:

>> Dim data2()
>> WScript.Echo UBound(data2)
>>
Error Number:       9
Error Description:  Subscript out of range

的肮脏程度Dim a()声明被后来的事实所掩盖ReDim将存储一个适当的dynamic数组到该变量中:

>> Dim data2() ' <-- abomination
>> ReDim data2(1,1) ' <-- overwritten by a dynamic array
>> data2(0,0) = 0
>> ReDim Preserve data2(1,5) ' last dimension increased; 'old' data preserved
>> data2(1,5) = 1
>> WScript.Echo data2(0,0), data2(1,5)
>>
0 1

更新 jmbpiano 的评论:

(1) 我提供了证据表明你无法获得用 () 变暗的变量的 UBound,所以我坚持我的主张,即这种野兽是可憎的。只需看一下问题(或this one) 看到使用 () 会给你带来麻烦。

(2) 我说你应该使用ReDim a(KnownUbound)“声明”一个已知大小的动态数组,但我没有提供该习惯用法的“选项显式”兼容性的证据。所以 :

Option Explicit
ReDim a(4711)
ReDim b(4,7,1,1)
a(0) = "qed"
b(0,0,0,0) = "qed"
WScript.Echo b(0,0,0,0)

output:

cscript 19888987.vbs
qed
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VBScript 创建一个多维数组并添加到它? 的相关文章

  • PHP foreach 数组与 stdClass 对象

    我需要帮助尝试获取数组和 stdClass 对象内的值 仅供参考 我正在使用 foursquare API 我有这样的事情 fsq groups venues gt response gt groups echo pre print r f
  • vbs脚本通过ftp发送文件并检查/删除原始文件

    我正在尝试通过 ftp 发送文件 然后检查该过程是否成功完成 如果成功 我将删除原始文件并仅保留在 FTP 上的目标文件夹中发送的文件 我设法修补了一个连接到 FTP 并发送文件的脚本 但我不确定如何将原始文件夹与 FTP 上的文件夹进行交
  • 终止或中断java 8流循环[重复]

    这个问题在这里已经有答案了 我有一个包含以下内容的 java 8 流循环 void matchSellOrder Market market Order sellOrder System out println selling market
  • 将 ADODB.RecordSet 输出为 JSON

    我正在尝试更改我的应用程序 以便它输出 JSON 而不是 HTML当它发出 AJAX 请求某些数据时 我有一个 ADODB 记录集 我需要逐行循环它并添加 更改 删除不同的值 然后我需要获取所有修改的行response write它们作为
  • 多维字符数组?

    我想做的是创建一个二维字符串数组 下面的seg错误立即出现 请问是什么问题 void add2 char b char i if i b 0 0 char malloc 120 sprintf b 0 0 s hithere b 0 1 c
  • 二维数组是否可以实现为连续的一维数组?

    我有一个关于二维数组的内存布局的问题 当我们定义一个时 就像int一样a 3 4 这个数组分配的内存是连续的吗 或者换句话说 二维数组是否实现为连续的一维数组 如果答案是肯定的 则正在访问a 0 6 相当于访问a 1 2 我编写了以下 C
  • 使用 CodeIgniter 在循环中加载视图是一种不好的做法

    我刚刚开始使用 CodeIgniter 想知道如果我将这样的代码放入循环中 它会减慢速度吗 data title the title data content blah blah blah this gt load gt view resu
  • 循环访问多个 CSV 文件并生成多个输出

    我正在编写一些 python 脚本 它打开 csv 文件 定义数据帧 运行一些分析 例如聚合数据 拆分列 查找平均值等 并将分析的输出绘制在图表上 输出将是一个图形 png 文件 和一个 csv 文件 并在原始文件名末尾添加单词 ANALY
  • C# 数组 - string[][] 与 string[] [重复]

    这个问题在这里已经有答案了 可能的重复 C 中的多维数组和数组的数组有什么区别 https stackoverflow com questions 597720 what is differences between multidimens
  • 如何将 2 数组放入配置(.ini)文件中? [复制]

    这个问题在这里已经有答案了 我有这个简单的 VBScript 基本代码 Dim cars cars Array Volvo Saab BMW Dim fruits fruits Array Apple Orange Banana Dim i
  • 将用户定义的函数应用于数据框列表

    我有一系列结构与此类似的数据框 df lt data frame x c notes year 1995 2005 y c NA value 11 21 df2 lt data frame x c notes year 1995 2005
  • 列表分隔符脚本

    如何从命令行更改列表分隔符 通常我必须编辑以下字段 控制面板 更改键盘或其他输入法 其他设置 我想创建一个 VBScript 单击它会自动更改 to 还有另一个可以返回的 一个脚本就足够了 该设置存储在注册表值中HKCU ControlPa
  • R 中带有文件名的 For 循环

    我有一个文件列表 例如 nE pT sbj01 e2 2 csv nE pT sbj02 e2 2 csv nE pT sbj04 e2 2 csv nE pT sbj05 e2 2 csv nE pT sbj09 e2 2 csv nE
  • 根据javascript中对象数组中的id替换特定对象

    我有一系列像这样的对象 var books id 1 name Name of the wind year 2015 rating 4 5 author 2 现在我有一个函数 editBooks 它要求用户提供 id 并用用户给出的值替换具
  • 空 while 循环有什么影响?

    我知道这可能是一个有点 愚蠢 的问题 但有时 我只想循环直到条件为假 但我不喜欢让循环保持为空 所以代替 Visible true while IsRunning Visible false 我通常prefer while IsRunnin
  • 如何在 matlab 中创建由多个 3d 图像数据数组组成的数组

    我正在阅读 15 张图片imagedata imread imagename jpg 它的大小总是320 by 320 by 3 如何将数据放入数组中 使用 for for 循环 以便在访问新数组的第一个元素时获得输入的第一个图像的 RGB
  • 使用ASP/VB获取节点属性值

    我有以下 XML 架构
  • 传递给函数时多维数组的指针类型是什么? [复制]

    这个问题在这里已经有答案了 我在大学课堂上学习了 C 语言和指针 除了多维数组和指针之间的相似性之外 我认为我已经很好地掌握了这个概念 我认为由于所有数组 甚至多维 都存储在连续内存中 因此您可以安全地将其转换为int 假设给定的数组是in
  • 通过数据框与函数进行交互

    如果我有这样的日期框架 氮 EG 00 04 NEG 04 08 NEG 08 12 NEG 12 16 NEG 16 20 NEG 20 24 datum von 2017 10 12 21 69 15 36 0 87 1 42 0 76
  • 使用 VBScript 在日期字段值上选择错误的数据

    我有一张包含以下数据的表 现在 Excel 共有 36 个任务 每个任务有 4 列 第一个任务 即 Task1 名称将始终从 L 列开始 144 列描述了 36 个任务 现在我们需要按行进行检查 并需要检查 TNStart 开始日期 你们能

随机推荐

  • 安装后尝试打开 Spark 并出现错误:无法找到任何与版本“1.8”匹配的 JVM

    描述 我在 MacBook 上安装了 Spark 然后使用Homebrew 我按照以下指示流程进行操作 https www tutorialkart com apache spark how to install spark on mac
  • 重构现有系统的可测试性

    我加入了一个开发产品的团队 该产品已经存在了大约 5 年 并且使用 ASP NET WebForms 随着时间的推移 它的原始架构已经褪色 整个解决方案变得相对混乱 这绝不是可怕的 但绝对需要一些工作 你们都知道我的意思 自从大约 6 个月
  • 选择/排除 pandas 中的列集[重复]

    这个问题在这里已经有答案了 我想根据列选择从现有数据帧创建视图或数据帧 例如 我想创建一个数据框df2来自数据框df1它包含除其中两列之外的所有列 我尝试执行以下操作 但没有成功 import numpy as np import pand
  • 使用 Grand Central Dispatch 时如何发布 NSNotification?

    我发现 正如预测的那样 当我将图像写入文件时 我的 UI 在这段时间内被阻止 这是不可接受的 当我将图像写入文件时 我会发布 NS 通知 以便我可以执行与该完成相关的其他一些特定工作 原始工作但 UI 阻塞代码 void saveImage
  • 所有磁盘扇区在汇编中是如何迭代的?

    在学习汇编的过程中 我正在编写一个操作系统 我已经成功编写了将第二个 512 字节扇区附加到初始 512 字节引导加载程序所需的代码 define KBDINT 0x16 define VIDINT 0x10 define DISKINT
  • 同一域的 Django 和 Node 进程

    嗨我有两个过程 Django 和 MYSQL 节点 express 和 mongodb 1 如何配置这两个进程指向不同的 url 喜欢 Django 指向 api abc com v1 节点指向 api abc com v2 2 我所有的用
  • Windows Phone 8 设备作为感应门禁卡

    Lumia 920 中的 NFC 硬件可以模拟 125 kHz 感应卡吗 看起来 NFC 硬件实现的标准是门禁卡使用的标准的超集 但我对这些无线电标准没有足够的了解 无法理解手机是否只能作为此类信号的接收器或发射器 我还希望获得一篇很好的概
  • 从文件中读取数字C++

    我想从文本文件中读取数字 该文件包含以下数字 3 5 7 9 20 25 30 40 55 56 57 60 62 1 4 7 11 14 25 44 47 55 57 100 5 100 1000 1005 12 1000 1001 空格
  • 在 Node.js 中同时生成的发票具有相同的编号。如何实现独特性?

    在我的 Node js 应用程序中 我想启用生成带有发票的 PDF 的功能 一切都很顺利 直到两个或更多人同时 在不同的机器上 生成发票 然后 系统会提示他们提供具有相同编号的不同发票 例如发票号码 355 这是将发票保存到MySQL的方法
  • 无法编译 yesod,hGetContents 参数无效

    我正在尝试创建 Yesod 项目 但无法退出1st step 以下是我初始化和构建的步骤 stack new someproj yesodweb postgres cd someproj stack build 我没有做任何额外的编码 只是
  • 解析 R 脚本中的命令行参数

    有没有方便的方法来自动解析传递给 R 脚本的命令行参数 类似perl的东西Getopt Long CRAN上有3个包 getopt 类似 C 的 getopt 行为 optparse 受 Python 启发的命令行解析器optparse l
  • 如何在变量中取加号

    我想计算两个数字 这很简单 但是有什么办法可以将运算符放入变量中然后进行计算吗 var x 5 var y 5 var p var z x p y button click function alert z div class button
  • C++ 循环中向量::size() 的性能问题

    在下面的代码中 std vector
  • 覆盖默认的 Java 外观

    我想覆盖 java 的外观和感觉 我只是想以不同的方式显示按钮 我想要 Windows 外观和感觉的所有功能 但只是按钮不同 我希望你明白我的意思 Color color new Color 220 220 220 200 UIManage
  • 为什么调用字符串方法(例如 .replace 或 .strip)不会修改(变异)字符串?

    我尝试使用此代码进行简单的字符串替换 X hello world X replace hello goodbye 为什么不X改变 从 hello world to goodbye world 这是因为Python 中的字符串是不可变的 意思
  • 在 clustermap 上为等于零的值设置特定颜色

    我想在使用seaborn 进行聚类图的图形输出方面获得一些帮助 在我的数据中 我缺少转换为 0 的数据 我想为等于零的值设置白色 为其余值设置调色板 有没有办法在cmap中指出它 import pandas as pd from rando
  • 使用 JavaScript 检测时区缩写

    我需要一种方法来检测给定日期对象的时区 我不需要偏移量 也不想要完整的时区名称 我需要获取时区缩写 例如 GMT UTC PST MST CST EST 等 这可能吗 我得到的最接近的是解析结果date toString 但即使这样也不会给
  • 如何使用Microsoft Graph API获取Office365邮件的MIME内容?

    如何使用 Microsoft Graph API 获取 Office365 邮件的 MIME 内容以便我可以创建 EML 文件 或者是否有其他方法可以使用 Microsoft graph API 创建 Office365 中找到的邮件的 E
  • 从 HttpListener 解析 POST 参数

    假设我有 HttpListener 它监听一些端口和IP 当我发送 POST 请求时 它会捕获它 如何从 HttpListenerRequest 解析 POST 参数 HttpListenerContext context listener
  • VBScript 创建一个多维数组并添加到它?

    这对我来说太棒了哈哈 我几乎检查了谷歌搜索上的每个页面 但我仍然不明白该怎么做 我想在 VB 脚本中创建一个名为 data2 的多维数组 尝试我见过的示例 但出现 下标超出范围 错误 Dim data2 sub grabdata SQL q