| > 私の提示したのはSplitを使っていませんよ。送られてきたXMLをSplitしないで
> Srcの代わりに処理するようにしてみて下さい。XMLがタグの区切りで終わっていれば
> 何行あっても同時に処理出来るかと思います。
やってみましたが何も表示されなかったため
xml = xml.Replace('\0', '\n');の後にshuさんのコードを記述しました。
すると途中まで同じテキストを表示し
改行コードを含んだテキストは表示されずに処理が続行されました。
------------------------------------------
Datagridviewで以下のような表示になる
1番目
1番目
1番目
1番目
1番目
1番目
7番目
8番目
10番目(改行コードを含む9番目は表示されず10番目からの表示となる)
------------------------------------ソース
while (true)
{
byte[] resBytes = new byte[MAX_RECEIVE_SIZE];
int resSize = sock.Receive(resBytes, resBytes.Length, System.Net.Sockets.SocketFlags.None);
if (resSize == 0)
{
return;
}
xml = prev + Encoding.UTF8.GetString(resBytes, 0, resSize);
xml = xml.Replace('\0', '\n');←これが無いと何も表示されない
string come2 = "";
var xdoc1 = new XmlDocument();
xdoc1.LoadXml(String.Format("<root>{0}</root>", xml));
foreach (XmlNode ndtmp in xdoc1.ChildNodes)
{
foreach (XmlNode nd in ndtmp.ChildNodes)
{
var attr = nd.Attributes;
if (nd.Name == "chat")
{
come2 = String.Format(nd.InnerText);
}
}
}
this.dataGridView1.Rows.Add(come2);
//これより下にbreak;はありますが省略しています
} |