Hej!
Jag har en sträng => strCurrentFilename = "%a-%b-%c"
Nu vill jag ersätta %a med variabeln strA, %b med variabeln strB och %c med strC. Hur gör jag det på enklast sätt?
Replacea lite i en sträng
5 svar · 350 visningar · startad av xcalibrate
// c#
string s = %a-%b-%c"
s= s.Replace("&a","strA");
//etc
Problemet är att jag vill i samma veva replacea de andra också. Och hur gör jag det? För ska jag replacea efteråt så har ju string s värdet strA bara och inte kvar -%b-%c
Antar att %a, %b och %c endast är placeholders och då kan du göra så här istället.
string strA, strB, strC;
strA = strB = strC = "Hej";
string strCurrentFilename = "{0}-{1}-{2}";
string s = string.Format(strCurrentFilename, strA, strB, strC);
Response.Write(s);
Visst det fungerar, men vet inte om detk ommer fungera för mig, jag ska förklara tydligare. Alltså egentligen behöver det inte vara %a-%b-%c utan det kan vara %aHejsan%b -ÖAO %chehe. Det är därför det är lite svårt. Jag försökte mig på en liten funktion som du kanske kan lösa:
Private Function ConvertToNewFilename(ByVal MyFileInfo As FileInfo, ByVal strCurrentFilename As String) As String
Dim MyMP3Tag As New MP3ID3v1(MyFileInfo.FullName)
Dim strNewString As String
Dim strExtensions() As String = {"%o", "%a", "%s"}
Dim strTranslation() As String = {"O", "A", "S"}
Dim iCount As Integer
For iCount = 0 To strExtensions.Length - 1
If InStr(strCurrentFilename, strExtensions(iCount)) <> 0 Then
'strNewString = Replace(strCurrentFilename, strExtensions(iCount), strTranslation(iCount))
strNewString = strCurrentFilename.Replace(strExtensions(iCount), strTranslation(iCount))
End If
Next
Return strNewString
End Function
Anropar den såhär:
ConvertToNewFilename(MyFileInfo, "%aHejsan%b -ÖAO %chehe")
Eller om ni vill kan ni skita i funktionen men jag vet i vilken fall som helst inte om det är %a-%b-%c eller om det är %a(%b) hEHHEHEHEHEHE%c osv...