VB6中如何从字符串中删除字符

5

我有一些字符串(文件路径),其中有时会随机插入换行符(CRLF),我需要将其删除。我该如何操作?

3个回答

13

请看Replace(..)函数。

someVariable = Replace(someVariable, vbNewLine, "")

4
尽管您已经链接到了VB.Net 2005文档,但我为了链接到VB6文档的缘故修改了您的帖子。 - MarkJ

6

Replace$()代替了;

path = Replace$(path, vbcrlf, "")

似乎没有带美元符号的Replace$函数。 - MatsT
@MatsT,“$”表示函数返回一个字符串。在变量和函数上使用“$”,“&”,“%”和“#”符号更加精确。 - Devin Burke
1
这也是一些(但不是replace())字符串函数的优化 http://www.aivosto.com/vbtips/stringopt.html#variant - Alex K.
我感到困惑,因为文档提到了其他函数的分离函数,比如LCase $ / LCase和Trim $ / Trim,但没有针对Replace。为什么Replace不是一种优化? - MatsT
VB6原本是作为一个过渡性产品,但遗憾的是它成为了最后一个版本。当VBScript添加了一些功能(例如Split、Replace)时,似乎有些代码被简单地移植到了VB6中,因为VB6文档中经常提到FSO和RegEx对象,而我们从未在VB中得到本地I/O流支持。 - Bob77

3
这将删除你字符串中的所有 CRLFs。
strFileName = Replace(strFileName, vbNewLine, "")

这里是一个可以放在辅助模块中的函数:

Public Function CleanFilePath(FilePath As String) As String
    Return Replace(FilePath, vbNewLine, "")
End Function

编辑:

另外,这里有一个辅助子程序可以修改字符串本身。但在较新的语言中,这并不是标准做法。

Public Sub CleanFilePath(ByRef FilePath As String)
    FilePath = Replace(FilePath, vbNewLine, "")
End Sub

如果我要创建一个辅助函数,仅修复路径而不返回任何内容会更有意义,对吗? - MatsT
你的意思是将字符串本身作为 ByRef 传递并进行修改吗?虽然可以这样做,但使用较新的语言返回值更为标准。 - Devin Burke
同意这是标准做法,但为什么呢?传递引用而不是创建新对象不是更优化吗? - MatsT

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接