gpt4 book ai didi

ms-access - 提供起始位置时 InStrRev 的不稳定行为

转载 作者:行者123 更新时间:2023-12-04 05:02:43 25 4
gpt4 key购买 nike

我不明白以下任何一项的结果。我知道 InStrRev 给出了最后“匹配”的位置(从右到左),并且当我不给出起始位置时可以理解结果。无论开始是从左还是右开始,1 或 2 都应该给出 0 以外的值。

Private Sub Form_Load()
Dim TestString As String
TestString = "ABCDEFGHCIJK"
msgbox = InStrRev(TestString, "C", 1) 'produces 0 if optional start parameter is 1 or 2
msgbox = InStrRev(TestString, "C", 3) 'produces 3 if start parameter is 3-8
msgbox = InStrRev(TestString, "C", 9) 'produces 9 if start parameter is 9-12
'13+ produces 0 as expected since its length of string is only 12
End Sub

有关功能的 Microsoft 文档: access & visual studio .在 Visual Studio 页面上,我尝试了页面底部的示例并得到了相同的结果,所以我知道它的工作原理。然而我的大脑没有得到。我也理解带 & 不带起始位置的 InStr 函数

最佳答案

我将提供一个不同的例子,我希望让情况更清楚。在立即窗口中(使用 Ctrl+g 快捷方式转到那里)...

TestString = "123456789"
? InStrRev(TestString, "3", 2)
0

该语句要求 InStrRevTestString 中的第二个字符开始并向后搜索字符“3”。由于 TestString 的前两个字符是“12”,因此在该子字符串中找不到“3”,因此 InStrRev 返回 0。

在这个例子中,我要求 InStrRev 从第四个字符开始搜索......

? InStrRev(TestString, "3", 4)
3

由于 TestString的前四个字符是“1234”,找到“3”作为第三个字符,所以 InStrRev返回3。

关于“1 或 2 应该给出 0 以外的值”的说法……这是不正确的,正如我的第一个例子所展示的那样。

关于ms-access - 提供起始位置时 InStrRev 的不稳定行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15928573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com