2017-06-21 4 views
-1

私のコードは、StringBuilderを使用してネットワークストリームから文字列を構築します。String.Splitはすべての空の配列値を作成します

次に、結果のStringBuilder(myCompleatMessage)をToStringの文字列に変換します。

この時点で文字列は正常です。

私は、上の文字列を区切るために.Split()を使用しようと「〜」

私はコンソールで、結果の文字列を表示したり、私が取得ファイルに書き込むしよう:「可能System.String []」何度も繰り返す

このための私のコードは次のとおりです。

byte[] myReadBuffer = new byte[3000]; 
StringBuilder myCompleteMessage = new StringBuilder(); 
int numberOfBytesRead = 0; 
char[] separatingChars = {'~'}; 
// Incoming message may be larger than the buffer size. 
do 
{ 
    numberOfBytesRead = stream.Read(myReadBuffer, 0, myReadBuffer.Length); 

    myCompleteMessage.AppendFormat("{0}", Encoding.ASCII.GetString(myReadBuffer, 0, numberOfBytesRead)); 

} 
while (stream.DataAvailable); 
string tosep = myCompleteMessage.ToString(); 

string[] words = tosep.Split(separatingChars); 
Console.Write(tosep); 

StreamWriter file = File.AppendText("c:\\Users/edegraaf/Desktop/test.txt"); 
foreach(string i in words) 
{ 
    file.WriteLine(words); 
} 
file.Close(); 

文字列のサンプル:

24.062C 2017年5月31日19:36:20.143767〜24.125C 2017年5月31日午後07時37分: 21.075028〜30.25C 2017-05-31 19:38:21.953599〜23.937C 2017-05-31 19:47:34.447627〜23.937C 2017-05-31 19:47:52.717755〜23.812C 2017-05-31 19:49:27.846434〜24.0C 2017-05-31 20:01:08.865726〜24.125C 2017-06-01 14:38:52.948025〜23.375C 2017-06-01 14:39:53.872969〜23.187C 2017年6月1日14:41:05.187961〜28.625Cは、2017年6月1日15:01:48.22

私は "System.String[]" を取得しています、なぜ誰も私を伝えることができますか?あなたが行うために必要なものを、代わりに、これをですが書くために、

file.WriteLine(words); 

:代わりに、配列の値を書き込むの

+2

file.WriteLine(words); file.WriteLine(i)でなければなりません。 – Trey

答えて

5

は、あなたがこれを使用してファイルへの配列自体を書き込もうとしています値:

foreach(string i in words) 
{ 
    file.WriteLine(i); 
} 
+0

これは本当に明白で、私は今はかなり愚かだと感じています。迅速な返信をありがとうございます。 – drako234

0

file.writeline(i)にfile.writeline(words)を変更します。それは動作します

関連する問題