.Replace(String,String)VB函数不起作用

时间:2016-01-12 14:48:52

标签: vb.net replace

我需要在VB中替换路径文件的末尾。所以我试试这段代码:

for (var i = 1; i <= 20; i++) {
    if (i % 3 === 0 && i % 5 === 0) {
        console.log("FizzBuzz");
    }
    else if (i % 5 ===0) {
        console.log("Buzz");
    }
    else if (i % 3 === 0) {
        console.log("Fizz");
    }
    console.log(i);
}

第一个MsgBox函数返回以下结果:

  

C:/ Users / Bruno / Documents / Visual Studio   2010 /项目/ SerEbics / SerEbics / bin中/调试/ Certificats / 512250X002.pfx

但是第二个让我走上了同样的道路:

  

C:/ Users / Bruno / Documents / Visual Studio2010 / Projects / SerEbics / SerEbics / bin / Debug / Certificats / 512250X002.pfx

所以我需要这个结果:

  

C:/ Users / Bruno / Documents / Visual Studio2010 / Projects / SerEbics / SerEbics / bin / Debug / Certificats / 512250_X002.pem

提前谢谢!

托马斯

4 个答案:

答案 0 :(得分:3)

使用替换功能连续三行并不是你想的那么做。每次,他们都会将FichierFinal设置为新的。所以他们没有相互建立。尝试用它替换它们:

FichierFinal = fichier.Replace("E002.pfx","_E002.pem")
FichierFinal = FichierFinal.Replace("X002.pfx","_X002.pem")
FichierFinal = FichierFinal.Replace("A005.pfx","_A005.pem")

答案 1 :(得分:1)

这是因为您的上一次替换还原了变量FichierFinal中的原始名称。只有当文件以其中一个期望的字符串结束时,才应执行替换。

If fichier.EndsWith("E002.pfx") Then
   FichierFinal = fichier.Replace("E002.pfx","_E002.pem")
Else if fichier.EndsWith("X002.pfx") Then
   FichierFinal = fichier.Replace("X002.pfx","_X002.pem")
Else if fichier.EndsWith("A005.pfx") Then
   FichierFinal = fichier.Replace("A005.pfx","_A005.pem")
End If

通过这种方式,您只执行一次替换而不是三次。请记住,每次调用Replace时,都会分配并返回一个新字符串,这取决于调用的上下文,这可能会影响代码的性能。

答案 2 :(得分:1)

你没有按照你的想法行事。在每个新行中,您取消了前一行 并将FichierFinal定义为新值。

这将有效(不需要在3行中执行此操作):

FichierFinal = fichier.Replace("E002.pfx","_E002.pem").Replace("X002.pfx","_X002.pem").Replace("A005.pfx","_A005.pem")

答案 3 :(得分:0)

尝试使用此代码错误替换:

Private Function getfiledata(ByVal fichier As String) As String
  Dim fileReader As String
  Dim FichierFinal As String
  MsgBox(fichier)
  FichierFinal = fichier.Replace("E002.pfx","_E002.pem")
  FichierFinal = FichierFinal.Replace("X002.pfx","_X002.pem")
  FichierFinal = FichierFinal.Replace("A005.pfx","_A005.pem")
  MsgBox(FichierFinal)
  fileReader = My.Computer.FileSystem.ReadAllText(FichierFinal)
  Return fileReader
End Function