2013-04-17 67 views
-1

我正在嘗試將文本寫入文件,並且除了一個錯誤之外都有這個文本。 它說:「表達應爲」Vb.net在「&」之後預期的表達式

下面的代碼:

Using writer As StreamWriter = New StreamWriter(filepath) 
      writer.Write("[HealthBarSettings]" & vbNewLine & _ 
"MaxHealthTicks = 50" & vbNewLine & _ 
"MaxHealthMicroTicks = 100" & vbNewLine & _ 
"DefaultHealthPerMicroTick = 50" & vbNewLine & _ 
"DefaultHealthPerTick = 200" & vbNewLine & _ 
"DefaultHealthPerMegaTick = 1000" & vbNewLine & _ 
& vbNewLine & _ 
"TickAlpha = 200" & vbNewLine & _ 
"MicroTickAlpha = 140" & vbNewLine & _ 
"MicroTickHeight = 0.5" & vbNewLine & _ 
"MegaTickAlpha = 255" & vbNewLine & _ 
"TickThickness = 1.0" & vbNewLine & _ 
"MicroTickThickness = 1.0" & vbNewLine & _ 
"MegaTickThickness = 2.0" & vbNewLine & _ 
& vbNewLine & _ 
"UseCompression = 1" & vbNewLine & _ 
"GoTransparent = 1" & vbNewLine & _ 

的錯誤是在第8行是它說:「& vbNewLine & _」沒有別的就行了,第一&下劃線。在其他線路上沒有像這樣的錯誤。

回答

0

更改線路8:

"DefaultHealthPerMegaTick = 1000" & vbNewLine _ 

& vbNewLine & _ 

的問題是多餘的&。你不需要連接運算符時使用_

2

我真的討厭字符串連接。只是爲了避免它,我會寫

Dim sb = new StringBuilder(680) 
sb.AppendLine("[HealthBarSettings]") 
sb.AppendLine("MaxHealthTicks = 50") 
sb.AppendLine("MaxHealthMicroTicks = 100") 
sb.AppendLine("DefaultHealthPerMicroTick = 50") 
sb.AppendLine("DefaultHealthPerTick = 200") 
sb.AppendLine("DefaultHealthPerMegaTick = 1000") 
sb.AppendLine() 
sb.AppendLine("TickAlpha = 200") 
sb.AppendLine("MicroTickAlpha = 140") 
sb.AppendLine("MicroTickHeight = 0.5") 
sb.AppendLine("MegaTickAlpha = 255") 
sb.AppendLine("TickThickness = 1.0") 
sb.AppendLine("MicroTickThickness = 1.0") 
sb.AppendLine("MegaTickThickness = 2.0") 
sb.AppendLine() 
sb.AppendLine("UseCompression = 1") 
sb.AppendLine("GoTransparent = 1") 
writer.Write(sb.ToString()) 

我已經創建了一個初始容量爲680個字符的StringBuilder。 (假設17行,每行40個字符)。 StringBuilder有一個內部緩衝區存儲字符。該緩衝區以16個字符的容量開始。你可以調用StringBuilder的構造函數,說你需要1K緩衝區。這將爲請求的大小創建內部緩衝區,如果足夠大,當添加更多字符時,框架不需要執行大小調整操作,則會超出緩衝區當前大小。

+0

+1是的,就是這樣做。這是有效的,因爲每次使用'&連接字符串時,原始字符串都留在內存中。 –

+0

並且對最終字符串長度有一點計算,也可以避免stringbuilder緩衝區的內部調整大小 – Steve

+0

?告訴我更多。 –

0

你已經使用&標誌兩次

1. "MaxHealthTicks = 50" & vbNewLine & _ 
2. "MaxHealthMicroTicks = 100" & vbNewLine & _ 
3. "DefaultHealthPerMicroTick = 50" & vbNewLine & _ 
4. "DefaultHealthPerTick = 200" & vbNewLine & _ 
6. "DefaultHealthPerMegaTick = 1000" & vbNewLine & _ 
7. & vbNewLine & _ 
8. "TickAlpha = 200" & vbNewLine & _ 
9. "MicroTickAlpha = 140" & vbNewLine & _ 
10. "MicroTickHeight = 0.5" & vbNewLine & _ 
11. "MegaTickAlpha = 255" & vbNewLine & _ 
12. "TickThickness = 1.0" & vbNewLine & _ 
13. "MicroTickThickness = 1.0" & vbNewLine & _ 
14. "MegaTickThickness = 2.0" & vbNewLine & _ 
15. & vbNewLine & _ 
16. "UseCompression = 1" & vbNewLine & _ 
17. "GoTransparent = 1" & vbNewLine & _ 

見最後一行我提到...... 6號線有「&」和7還具有「&」於是就用 兩次,也同樣的事情上14 15沒有線,也沒有必要使用,如果17沒有線你的最後一行

& _