我正在編寫代碼以從文本文件中讀取字符串,然後將DBnames
參數(由星號包圍)更改爲以NEWDB + textBox.Text
開頭的其他名稱。我也想將DOMAINDB
更改爲DOMAIN + txtbox.Text
從文本文件中替換字符串中的DB參數
我目前的代碼只使用string.StartsWith
搜索特定的單詞。 但我正在尋找一種方式,將讀取我需要根據逗號分隔更改的值。
這裏是我當前的髒碼:(這有點工作,但我正在尋找一種方法,使之更加動態)
CurrentFilePath = NextFilePath(FilePaths, FileEnum) 'defined in previous section
OriginalFileLines = File.ReadAllLines(CurrentFilePath) 'defined in previous section
NewFileLines.Clear()
Dim DataDB = "NEWDB" + txtbox.Text.ToUpper()
Dim DomainDB = "DOMAIN" + txtbox.Text.ToUpper()
Dim sb = New StringBuilder()
For Each line In OriginalFileLines
Dim arr = line.Split(",")
Dim NewLine As New StringBuilder()
' arr(6) = DataDB
' sb.AppendLine(String.Join(",", arr))
'Next
For Each word In arr
If word.StartsWith("DATADB") Then
NewLine.Append(",NEWDB" + txtOrgID.Text.ToUpper) 'Change "DATADB%" to "NEWDATADB{txtbox.txt}"
ElseIf word.Contains("*") Then
NewLine.Append(",*" + txtServerName.Text) 'Change "%*%" to "*{ServerName}"
Else
NewLine.Append(IIf(Array.IndexOf(arr, word) > 0, ",", "") + word) 'Comma if not first word
End If
Next
NewFileLines.Add(NewLine.ToString)
File.WriteAllLines(CurrentFilePath, NewFileLines.ToArray)
實際行內文本文件:
SSA,SystemA,,YES,YES,*SERVERNAME,**DATADB**,Admin,Passw0rd!,,,MS-SQL
SSB,SystemB,,NO,YES,*SERVERNAME,**DOMAINDB**,Admin,Passw0rd!,,,MS-SQL
SSC,SystemC,,YES,YES,*SERVERNAME,**DOMAINDB**,Admin,Passw0rd!,,,MS-SQL
數據庫是否總是'arr [6]'?如果是這樣的話......你能否檢查一下'arr [6]'的值? – 2013-05-14 06:50:00
這是否爲csv文件格式?如果是這樣,我會建議:http://kbcsv.codeplex.com/ 它可以很容易地讀/寫csvs,你最好的選擇是訪問「datadb」列... – 2013-05-14 06:54:41
Marc,是的,數據庫總是在Array6上。 – user2380388 2013-05-14 07:07:55