首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.Replace(String,String) VB函数不工作

.Replace(String,String) VB函数不工作
EN

Stack Overflow用户
提问于 2016-01-12 14:48:51
回答 4查看 349关注 0票数 1

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

代码语言:javascript
复制
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 = fichier.Replace("X002.pfx","_X002.pem")
  FichierFinal = fichier.Replace("A005.pfx","_A005.pem")
  MsgBox(FichierFinal)
  fileReader = My.Computer.FileSystem.ReadAllText(FichierFinal)
  Return fileReader
End Function

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

C:/User/Bruno/Documents/Visual 2010/Projects/SerEbics/SerEbics/bin/Debug/Certificats/512250X002.pfx

但第二条路让我回到了同样的道路:

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

所以我需要这个结果:

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

提前谢谢你!

托马斯

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-01-12 14:57:52

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

这将有效(另外不需要在3行中这样做):

代码语言:javascript
复制
FichierFinal = fichier.Replace("E002.pfx","_E002.pem").Replace("X002.pfx","_X002.pem").Replace("A005.pfx","_A005.pem")
票数 1
EN

Stack Overflow用户

发布于 2016-01-12 14:54:47

一行中使用teh替换函数的三行没有完全按照您的想法执行。每一次,他们都会将FichierFinal设置为新的东西。所以他们没有建立在彼此的基础上。试着用以下方法替换它们:

代码语言:javascript
复制
FichierFinal = fichier.Replace("E002.pfx","_E002.pem")
FichierFinal = FichierFinal.Replace("X002.pfx","_X002.pem")
FichierFinal = FichierFinal.Replace("A005.pfx","_A005.pem")
票数 3
EN

Stack Overflow用户

发布于 2016-01-12 14:55:39

这是因为您最后一次替换变量FichierFinal中的原始名称。只有当文件以预期的字符串结束时,才应该执行替换。

代码语言:javascript
复制
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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34746734

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档