Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net Visual Basic 2013字符串替换_Vb.net_Visual Studio - Fatal编程技术网

Vb.net Visual Basic 2013字符串替换

Vb.net Visual Basic 2013字符串替换,vb.net,visual-studio,Vb.net,Visual Studio,我发现这段代码替换了文本文件中的字符串。但是,我正在尝试使它能够替换文本文件中的几个字符串 My.Computer.FileSystem.WriteAllText("C:\windows\PrinterList2.txt", My.Computer.FileSystem.ReadAllText("C:\windows\PrinterList.txt").Replace("IT", "ADM-IT"), False) 例如,我需要它将“it”替换为“ADM-it”,将“AR”替换为“AD

我发现这段代码替换了文本文件中的字符串。但是,我正在尝试使它能够替换文本文件中的几个字符串

    My.Computer.FileSystem.WriteAllText("C:\windows\PrinterList2.txt", My.Computer.FileSystem.ReadAllText("C:\windows\PrinterList.txt").Replace("IT", "ADM-IT"), False)
例如,我需要它将“it”替换为“ADM-it”,将“AR”替换为“ADM-AR”,可能还需要100多个

我怎样才能让它循环来完成这些任务?反复运行这行代码只会用最后一项替换文件


提前感谢。

Replace
返回一个
字符串
,因此,您可以在最后随意链接更多的
Replace
调用。

查看MSDN中的签名,似乎可以指定要替换的子字符串的出现次数

您还需要记住的是,Replace(..)函数将返回一个
字符串
,您可以继续替换该字符串,直到完成为止

如果需要将所有“X”替换为“Y”,则在下面的
for循环中添加另一个循环以调用
Replace(X,Y)
,直到当前替换的字符串与前一个匹配为止(这可能是幼稚的,效率不高)

下面是一些伪代码(不太喜欢VB:():


如果只有两个字符串要替换,则可以使用如下内容:

Imports System.IO

File.WriteAllText("C:\windows\PrinterList2.txt",
File.ReadAllText("C:\windows\PrinterList.txt").
    Replace("IT", "ADM-IT").
    Replace("AR", "ADM_AR"), False)

如果不止几个,这将不是非常有效。这种方法的另一个问题是,每次出现的IT和AR都将被替换,即使它们碰巧使用了另一个单词。例如,“STAR”一词将变成“STADM_AR”因此,考虑这是否会成为你的问题。

你的链接转到VB <代码>替换< /COD>方法。不应该使用遗留的VB方法,它们是向后兼容的。SabHiRAM有正确的想法。很多取决于替换字符串的数据结构。你很可能需要找到一种方法来分隔ST。响铃,这样您就不会意外地替换字符串。例如,如果您需要替换“IT”和“IT2”,如果您先替换“IT”,则“IT2”可能会被销毁。如果您的目标字符串在文件中可能不是唯一的,并且在一行/行中是唯一的,则您可能希望迭代这些行并对每行运行所有替换。
Imports System.IO

File.WriteAllText("C:\windows\PrinterList2.txt",
File.ReadAllText("C:\windows\PrinterList.txt").
    Replace("IT", "ADM-IT").
    Replace("AR", "ADM_AR"), False)