VB基础问题--查找替换行 我有一些文本文件,里面的某行数据为“|R 17:28:22_6-14-12”,想要做的是如果文件中有此行,则替换为当前时间,如果没有,则在第4行添加当前时间行,格式一致。我的想法是查找“|R”,然后判断是修改还是添加,但是这里我不会做了,请各位高手帮帮忙,其他的文件提取和修改都已经完成了,就差这里了,谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1、使用Instr来查找“|R”2、使用Replace来替换即可。 InStr 函数 返回 Variant (Long),指定一字符串在另一字符串中最先出现的位置。语法 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,执行一个基于数据库中信息的比较。 返回值如果 InStr返回 string1 为零长度 0 string1 为 Null Null string2 为零长度 Start string2 为 Null Null string2 找不到 0 在 string1 中找到string2 找到的位置 start > string2 0 说明InStrB 函数作用于包含在字符串中的字节数据。所以 InStrB 返回的是字节位置,而不是字符位置。 Replace函数 描述返回一个字符串,该字符串中指定的子字符串已被替换成另一子字符串,并且替换发生的次数也是指定的。语法Replace(expression, find, replacewith[, start[, count[, compare]]])Replace函数语法有如下几部分:部分 描述 expression 必需的。字符串表达式,包含要替换的子字符串。 find 必需的。要搜索到的子字符串。 replacewith 必需的。用来替换的子字符串。 start 可选的。在表达式中子字符串搜索的开始位置。如果忽略,假定从1开始。 count 可选的。子字符串进行替换的次数。如果忽略,缺省值是 –1,它表明进行所有可能的替换。 compare 可选的。数字值,表示判别子字符串时所用的比较方式。关于其值,请参阅“设置值”部分。 设置值compare参数的设置值如下:常数 值 描述 vbUseCompareOption –1 使用Option Compare语句的设置值来执行比较。 vbBinaryCompare 0 执行二进制比较。 vbTextCompare 1 执行文字比较。 vbDatabaseCompare 2 仅用于Microsoft Access。基于您的数据库的信息执行比较。 返回值Replace的返回值如下:如果 Replace返回值 expression长度为零 零长度字符串("")。 expression为Null 一个错误。 find长度为零 expression的复本。 replacewith长度为零 expression的复本,其中删除了所有出现的find 的字符串。 start > Len(expression) 长度为零的字符串。 count is 0 expression.的复本。 说明Replace函数的返回值是一个字符串,但是,其中从start所指定的位置开始,到expression字符串的结尾处的一段子字符串已经发生过替换动作。并不是原字符串从头到尾的一个复制。 问一个高级点的数据库查询的问题咯,看看有没有那位大锅知道的 问一个关于多用户操作的文件问题! 窗口不能居中,但VB中自带的如“登录窗口”却始中居中 谁有 ActiveSkin 4 注册机 关于datagrid的一个问题,急! 如何使treeview中的check动作失效 zyl910/TechnoFantasy来一下,问个游戏地图的事! 水晶报表问题, 已经使用WEBBROWSER打开的图片,怎么样在其他地方引用?? 用TextBox 做记事本 给位前辈帮忙看看这个代码?? 菜鸟求助:VB如何编写文本批量替换?
2、使用Replace来替换即可。
返回 Variant (Long),指定一字符串在另一字符串中最先出现的位置。语法 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,执行一个基于数据库中信息的比较。
返回值如果 InStr返回
string1 为零长度 0
string1 为 Null Null
string2 为零长度 Start
string2 为 Null Null
string2 找不到 0
在 string1 中找到string2 找到的位置
start > string2 0
说明InStrB 函数作用于包含在字符串中的字节数据。所以 InStrB 返回的是字节位置,而不是字符位置。
描述返回一个字符串,该字符串中指定的子字符串已被替换成另一子字符串,并且替换发生的次数也是指定的。语法Replace(expression, find, replacewith[, start[, count[, compare]]])Replace函数语法有如下几部分:部分 描述
expression 必需的。字符串表达式,包含要替换的子字符串。
find 必需的。要搜索到的子字符串。
replacewith 必需的。用来替换的子字符串。
start 可选的。在表达式中子字符串搜索的开始位置。如果忽略,假定从1开始。
count 可选的。子字符串进行替换的次数。如果忽略,缺省值是 –1,它表明进行所有可能的替换。
compare 可选的。数字值,表示判别子字符串时所用的比较方式。关于其值,请参阅“设置值”部分。
设置值compare参数的设置值如下:常数 值 描述
vbUseCompareOption –1 使用Option Compare语句的设置值来执行比较。
vbBinaryCompare 0 执行二进制比较。
vbTextCompare 1 执行文字比较。
vbDatabaseCompare 2 仅用于Microsoft Access。基于您的数据库的信息执行比较。
返回值Replace的返回值如下:如果 Replace返回值
expression长度为零 零长度字符串("")。
expression为Null 一个错误。
find长度为零 expression的复本。
replacewith长度为零 expression的复本,其中删除了所有出现的find 的字符串。
start > Len(expression) 长度为零的字符串。
count is 0 expression.的复本。
说明Replace函数的返回值是一个字符串,但是,其中从start所指定的位置开始,到expression字符串的结尾处的一段子字符串已经发生过替换动作。并不是原字符串从头到尾的一个复制。