| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 864 人关注过本帖
标题:任何在很长的字符串中快速找到子字符串,并且能给出所在位置(为了在父字符 ...
只看楼主 加入收藏
SirTsy
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2023-6-3
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
任何在很长的字符串中快速找到子字符串,并且能给出所在位置(为了在父字符串中对子字符串编辑)
谢谢
搜索更多相关主题的帖子: 快速 字符串 编辑 位置 
2023-06-04 15:11
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:20 
instr 函数不行吗?

函数原型
InStr([start,]string1,string2[,compare])
表达式InStr([起始,] 接受搜索的字符串,被搜索的字符串[,匹配模式])
参数
start 可选参数。为数值表达式,设置每次搜索的起点。如果省略,将从第一个字符的位置开始。如果 start 包含 Null,将发生错误。如果指定了 compare 参数,则一定要有 start 参数。
string1 必要参数。接受搜索的字符串表达式。
string2 必要参数。被搜索的字符串表达式。
compare 可选参数。指定字符串比较。如果 compare 是 Null,将发生错误。如果省略 compare,Option Compare 的设置将决定比较的类型。
Compare 参数设置为:
常数    描述
vbUseCompareOption  -1  使用Option Compare 语句设置执行一个比较。
vbBinaryCompare  0  执行一个二进制比较(即 英文字符区分大小写)。
vbTextCompare  1  执行一个按照原文的比较(即 英文字符不区分大小写)。
vbDatabaseCompare  -2  仅适用于Microsoft Access,执行一个基于数据库信息比较。
返回值  从 Start 位置开始,在 String1 中寻找 String2 ,如果没有找到,则返回0。如果 String1 或 String2 为Null,则返回Null,其他情况返回 String2 在 String1 中的起始位置。

------------------
如果你字符串太长,超过了 string 的限制,那就无法保存在内存里,就只能保存到在文件里了。这种情况下,对文件进行分段读取并查找即是了。

授人于鱼,不如授人于渔
早已停用QQ了
2023-06-04 17:11
SirTsy
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2023-6-3
收藏
得分:0 
回复 2楼 风吹过b
字符串大概有多长就不能放在内存了?
2023-06-05 18:13
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
针对这个问题,VB6 有三个限制:
1、单个字符串最大 大约可以包含20亿左右的字符
2、VB6 的 long 值,只有32位,最大值 :2,147,483,648,约21亿多
3、VB6编译出来的程序是32位的,一般情况内存限制不超过2G,特殊参数可以使内存限制不超过3G。
这三个限制基本上都是一致,但最关键的是要考虑客户机内存配置情况,不能使用极限值去设定多长的字符串不能放内存。

最后,如果你的数据文件超过了2G,建议使用 C++(64位) 去写,int64 的数据空间足够你使用了。

授人于鱼,不如授人于渔
早已停用QQ了
2023-06-05 19:55
快速回复:任何在很长的字符串中快速找到子字符串,并且能给出所在位置(为了在父 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026332 second(s), 11 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved