VB6实现数组Slice()函数,可以像JS一样,切片出一个新数组
日期:2021年09月02日
作者:Commas
注释:VB6数组的方法比较少,需要从源数组切片出一个新的数组,实现了类似JS数组的slice方法,目前暂不支持传入负数;
文章目录
- 一、VB6版本的数组slice()
- 二、VBS版本的数组slice()
- 三、VB6使用slice()的示例
一、VB6版本的数组slice()
Public Function Slice(ByRef arySrc As Variant, ByVal lngStart As Long, ByVal lngEnd As String) As Variant
On Error Resume Next
'函数说明:返回一个新的数组,包含从 lngStart 到 lngEnd (不包括该元素)的 arySrc 中的元素。
'创建作者:Commas
'创建时间:2020-09-01
'修改时间:
'------传参说明------
'arySrc:源数组
'lngStart:规定从何处开始选取,lngStart≥0
'lngEnd:规定从何处结束选取。该参数是数组片断结束处的数组下标,;lngStart≥0;
'------传参说明------If lngStart >= lngEnd Then'返回一个空字符串数组,与JS的slice保持一致Slice = Array("")ElseDim strTemp As String, aryTemp() As String, sSpt As String, iSpt As LongsSpt = vbTab'(1)复制数组strTemp = Join(arySrc, sSpt)aryTemp = Split(strTemp, sSpt)'Debug.Print "src=", strTemp'(2)获取需要截取掉的字符位置ReDim Preserve aryTemp(lngStart)'Debug.Print strTemp, "-", Join(aryTemp, sSpt)iSpt = Len(Join(aryTemp, sSpt)) - Len(aryTemp(lngStart)) + 1'(3)获得截取后的数组strTemp = Mid(strTemp, iSpt)aryTemp = Split(strTemp, sSpt)If lngEnd <> 0 And lngEnd <= UBound(arySrc) + 1 ThenReDim Preserve aryTemp(lngEnd - lngStart - 1)End If'Debug.Print "dest=", Join(aryTemp, sSpt)Slice = aryTempEnd If
End Function
二、VBS版本的数组slice()
Function Slice(arySrc, lngStart, lngEnd)
On Error Resume Next
'函数说明:返回一个新的数组,包含从 lngStart 到 lngEnd (不包括该元素)的 arySrc 中的元素。
'创建作者:Commas
'创建时间:2020-09-01
'修改时间:
'------传参说明------
'arySrc:源数组
'lngStart:规定从何处开始选取,lngStart≥0
'lngEnd:规定从何处结束选取。该参数是数组片断结束处的数组下标,;lngStart≥0;
'------传参说明------If lngStart >= lngEnd Then'返回一个空字符串数组,与JS的slice保持一致Slice = Array("")ElseDim strTemp, aryTemp, sSpt, iSptsSpt = vbTab'(1)复制数组strTemp = Join(arySrc, sSpt)aryTemp = Split(strTemp, sSpt)'Debug.Print "src=", strTemp'(2)获取需要截取掉的字符位置ReDim Preserve aryTemp(lngStart)'Debug.Print strTemp, "-", Join(aryTemp, sSpt)iSpt = Len(Join(aryTemp, sSpt)) - Len(aryTemp(lngStart)) + 1'(3)获得截取后的数组strTemp = Mid(strTemp, iSpt)aryTemp = Split(strTemp, sSpt)If lngEnd <> 0 And lngEnd <= UBound(arySrc) + 1 ThenReDim Preserve aryTemp(lngEnd - lngStart - 1)End If'Debug.Print "dest=", Join(aryTemp, sSpt)Slice = aryTempEnd If
End Function
三、VB6使用slice()的示例
Dim strTemp As String, aryTemp As Variant'数值数组aryTemp = Array(10, 20, 30)aryTemp = Slice(aryTemp, 1, 3)Debug.Print Join(aryTemp, ",")//立即窗口输出:20,30'字符串数组aryTemp = Array("aaa", "bbb", "ccc")aryTemp = Slice(aryTemp, 1, 3)Debug.Print Join(aryTemp, ",")//立即窗口输出:bbb,ccc
立即窗口输出:
20,30
bbb,ccc
版权声明:本文为博主原创文章,如需转载,请给出:
原文链接:https://blog.csdn.net/qq_35844043/article/details/120067330
VB6实现数组Slice()函数,可以像JS一样,切片出一个新数组相关推荐
- 将一个数组中重复的元素去除,并且返回一个新数组
public static void main(String[] args) {// 声明一个数组int[] arr = {1, 7, 7, 4, 5, 1, 1, 3, 3, 6, 9};// 打印 ...
- js 快速找出两个数组中的不同元素或对象
js 快速找出两个数组中的不同元素 var arr1 = [0,1,2,3,4,5]; var arr2 = [0,4,6,1,3,9]; function getArrDifference(arr1 ...
- js中实现截取数组的后几个元素作为一个新数组的方法
js中实现截取数组的后几个元素作为一个新数组的方法 有时候我们会遇到这种需求,截取数组中后5个元素作为一个新数组,且顺序不能变.数组中的slice()方法和splice()方法都可以实现这样的操作. ...
- php-使用函数array_walk_recursive处理多维数组的键值后返回一个新数组
php-使用函数array_walk_recursive处理多维数组的键值后返回一个新数组 $result = array(); //$content是一个多维数组 $walk = array_wal ...
- 写一个函数找出一个整数数组中,第二大的数
题目:写一个函数找出一个整数数组中,第二大的数. 算法分析: 1)假设数组中的前两个元素就是最大和第二大,即max和smax: 2)从数组的第二个元素开始遍历数组,当有元素大于max的时候,将max赋 ...
- js中实现截取数组的前几个元素以及后几个元素作为一个新数组的方法
数组中的slice()和splice()方法都可以实现对数组截取 const arr=[1,2,3,4,5,6,7,8]//截取数组前三个元素 const sliceA=arr.slice(0,3) ...
- .net 遍历数组找重复值写入一个新数组_面试 | 数组类算法精析
点击上方蓝字设为星标 每周一.三.五上午 8:30 准时推送 下面开始今天的学习- 面试中的算法问题,有很多并不需要复杂的数据结构支撑.就是用数组,就能考察出很多东西了.其实,经典的排序问题,二分搜索 ...
- JSX列表渲染(五)——4种写法:基本写法 遍历写法 map遍历写法(常用-加工处理数组的每一项数据,最后形成一个新的数组) 列表遍历可以直接写到表达式中
JSX列表渲染--4种写法:基本写法 & 遍历写法 & map遍历写法(常用-加工处理数组的每一项数据,最后形成一个新的数组) & 列表遍历可以直接写到表达式中 渲染多个元素 ...
- Java黑皮书课后题第7章:7.10(找出最小元素的下标)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素下标。编写测试程序,提示用户输入10个数字,调用这个方法返回最小值的下标(多个则最小
7.10(找出最小元素的下标)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素下标.编写测试程序,提示用户输入10个数字,调用这个方法返回最小值的下标(多个则返回最小的下标) 题目 题目描述 ...
- Java黑皮书课后题第7章:7.9(找出最小元素)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素。编写测试程序,提示用户输入10个数字,调用这个方法返回最小值,并显示这个最小值
7.9(找出最小元素)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素.编写测试程序,提示用户输入10个数字,调用这个方法返回最小值,并显示这个最小值 题目 题目描述与运行示例 破题 代码 ...
最新文章
- 求解LambdaMART的疑惑?
- jzoj3054-祖孙询问【LCA】
- 深入理解DOM节点类型第六篇——特性节点Attribute
- sql注入基于错误-单引号-字符型
- Tina-TI 电路仿真 多参数交流传输特性分析 频率与相位增益的关系 选择控制对象
- 取文字_玉镯取不出来了怎么办?教你6种最有效的方法
- python医药数据,PostgreSQL+Python实现药品规格数值与单位拆分
- 大厂程序员手把手教你如何写简历(附简历模板)
- 【skimage.util.shape】有关view_as_windows裁剪数组及恢复的简单尝试
- PHP+node采集58微聊聊天信息
- 淘宝客怎么推广?学会这三招,赚钱不再愁
- 线性代数Python计算:对称矩阵的对角化
- 华为P50/P50Pro怎么解锁huawei P50pro屏幕锁开机锁激活设备锁了应该如何强制解除鸿蒙系统刷机解锁方法流程步骤不开机跳过锁屏移除锁定进系统方法经验
- 观点|蚂蚁金服玉伯:我们是如何从前端技术进化到体验科技的?
- 小程序behavior
- usemvc永远不会被使用_你永远不会离开
- opengl——绘制一个点
- google sdk speech-to-text(谷歌语音转文本、谷歌语音转字幕)
- 数独问题流程图_数独游戏的难度等级分析及求解算法研究
- 《拆掉思维里的墙》简评和部分摘录