2016-01-12 73 views
1

我需要替換VB中的路徑文件的結尾。所以,我試試這個代碼:.Replace(String,String)VB函數不工作

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:/用戶/布魯諾/文檔/ Visual Studio中 2010 /項目/ SerEbics/SerEbics /箱/Debug/Certificats/512250X002.pfx

但第二回我相同的路徑:

C:/用戶/布魯諾/文件/視覺Studio2010 /項目/ SerEbics/SerEbics /斌/調試/ Certificats/512250X002.pfx

所以,我需要這樣的結果:

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

提前致謝!

托馬斯

+0

你的第二個'Replace'讓你想改變,但第三個覆蓋的二的結果。我認爲你打算第二個和第三個'Replace'語句是'FichierFinal = FichierFinal.Replace(「X002.pfx」,「_ X002.pem」)'和'FichierFinal = FichierFinal.Replace(「A005.pfx」,「_ A005 。質子交換膜「)'。 – Blackwood

回答

1

你沒有做你的想法。在每個新行中,您取消了前一個行 並將FichierFinal定義爲新值。

這將作品(加上沒有必要在3線,以做到這一點):

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

三條線連續使用德替換功能不做得相當你的想法。每次他們將FichierFinal設置爲新的東西。所以他們不是彼此建立關係。嘗試用這種替代它們:

FichierFinal = fichier.Replace("E002.pfx","_E002.pem") 
FichierFinal = FichierFinal.Replace("X002.pfx","_X002.pem") 
FichierFinal = FichierFinal.Replace("A005.pfx","_A005.pem") 
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時,都會分配並返回一個新的字符串,並且根據調用的上下文,這可能會影響代碼的性能。

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 
相關問題