2014-03-12 28 views
-2

我將文本轉換爲二進制文件,並將該信息發送到控制檯。但是,我希望控制檯爲每8個字符編寫一個新行。控制檯每8個字符寫入一行

我轉換成二進制代碼如下所示(其中Result.Text包含隨機文本,將被轉換)

Dim Resultconvert As String = "" 
For Each C As Char In Result.Text 
    Dim s As String = System.Convert.ToString(AscW(C), 2).PadLeft(8, "0") 
    Resultconvert &= s 
Next 
Console.WriteLine(Resultconvert) 

因此,它應該是這樣的:而不是

01110010 
01111110 
01101111 
01011100 
01100100 
01010001 
01001101 
00111010 
01010100 

011100100111111001101111010111000110010001010001010011010011101001010100 

任何幫助表示讚賞。先謝謝你。

回答

1
Dim Resultconvert As String = String.Empty 

    For Each C As Char In Result.Text 
     Dim s As String = System.Convert.ToString(AscW(C), 2).PadLeft(8, "0") 
     Debug.Print(s) 
     Resultconvert &= s 
    Next 
+0

感謝您的回覆roryap!不幸的是,沒有運氣。仍寫爲一行。 – Ashtopher

+0

@ user3403843對不起,這正是我在IDE之外嘗試它所得到的。我修改了它。 –

+0

@ user3403843 - 再次修改...錯誤地將我的測試字符串留在那裏。 –

0

最簡單的解決方法就是打電話WriteLine分別爲每個字節,這樣的:

For Each C As Char In Result.Text 
    Dim s As String = System.Convert.ToString(AscW(C), 2).PadLeft(8, "0") 
    Console.WriteLine(s) 
Next 

但是,如果你想一直寫一次,你需要一個新行追加到字符串每個字節後,像這樣:

Dim Resultconvert As String = "" 
For Each C As Char In Result.Text 
    Dim s As String = System.Convert.ToString(AscW(C), 2).PadLeft(8, "0") 
    Resultconvert &= s & Environment.NewLine 
Next 
Console.WriteLine(Resultconvert) 

但是,在這一點上,它會更容易,更高效的使用StringBuilder

Dim builder As New StringBuilder() 
For Each C As Char In Result.Text 
    Dim s As String = System.Convert.ToString(AscW(C), 2).PadLeft(8, "0") 
    builder.AppendLine(s) 
Next 
Console.WriteLine(builder.ToString())