2013-04-24 81 views
3

我使用的是Kinect,可以將跟蹤座標保存到文本文件中,但爲了繪製圖形,我需要爲每個X和Y座標水平(從左到右)附加文本。此刻的文字看起來是這樣的:是否有可能使用StreamWriter c#水平追加文本?

2:58:22 PM 

Head X  314 

Head Y  250 

2:58:22 PM 

Head X  314 

Head Y  251 

,但我試圖讓這樣的:

2:58:22 PM    2:58:23 PM 

Head X 1 2 3 4 5 6 7 8 9 

Head Y 1 2 3 4 5 6 7 8 9 

這是我保存到一個文本文件代碼:

StreamWriter sw = File.AppendText("Text.txt"); 
sw.WriteLine(DateTime.Now.ToLongTimeString()); 

sw.WriteLine("Head X " + "\t" + TextBox21.Text); 
sw.WriteLine("Head Y " + "\t" + TextBox41.Text); 

sw.WriteLine("Shoulder X" + "\t" + TextBox22.Text); 
sw.WriteLine("Shoulder Y" + "\t" + TextBox42.Text); 

sw.WriteLine("ShoulderLeft X" + "\t" + TextBox23.Text); 
sw.WriteLine("ShoulderLeft Y" + "\t" + TextBox43.Text); 

sw.WriteLine("ShoulderRight X" + "\t" + TextBox24.Text); 
sw.WriteLine("ShoulderRight Y" + "\t" + TextBox44.Text); 

sw.WriteLine("ElbowLeft X" + "\t" + TextBox25.Text); 
sw.WriteLine("ElbowLeft Y" + "\t" + TextBox45.Text); 

sw.WriteLine("ElbowRight X" + "\t" + TextBox26.Text); 
sw.WriteLine("ElbowRight Y" + "\t" + TextBox46.Text); 

sw.WriteLine("WristLeft X" + "\t" + TextBox27.Text); 
sw.WriteLine("WristLeft Y" + "\t" + TextBox47.Text); 

sw.WriteLine("WristRight X" + "\t" + TextBox28.Text); 
sw.WriteLine("WristRight Y" + "\t" + TextBox48.Text); 

sw.WriteLine("HandLeft X" + "\t" + TextBox29.Text); 
sw.WriteLine("HandLeft Y" + "\t" + TextBox49.Text); 

sw.WriteLine("HandRight X" + "\t" + TextBox30.Text); 
sw.WriteLine("HandRight Y" + "\t" + TextBox50.Text); 

sw.WriteLine("Spine X " + "\t" + TextBox31.Text); 
sw.WriteLine("Spine Y " + "\t" + TextBox51.Text); 

sw.WriteLine("HipCenter X" + "\t" + TextBox32.Text); 
sw.WriteLine("HipCenter Y" + "\t" + TextBox52.Text); 

sw.WriteLine("HipLeft X" + "\t" + TextBox33.Text); 
sw.WriteLine("HipLeft Y" + "\t" + TextBox53.Text); 

sw.WriteLine("HipRight X" + "\t" + TextBox34.Text); 
sw.WriteLine("HipRight Y" + "\t" + TextBox54.Text); 

sw.WriteLine("KneeLeft X" + "\t" + TextBox35.Text); 
sw.WriteLine("KneeLeft Y" + "\t" + TextBox55.Text); 

sw.WriteLine("KneeRight X" + "\t" + TextBox36.Text); 
sw.WriteLine("KneeRight Y" + "\t" + TextBox56.Text); 

sw.WriteLine("AnkleLeft X" + "\t" + TextBox37.Text); 
sw.WriteLine("AnkleLeft Y" + "\t" + TextBox57.Text); 

sw.WriteLine("AnkleRight X" + "\t" + TextBox38.Text); 
sw.WriteLine("AnkleRight Y" + "\t" + TextBox58.Text); 

sw.WriteLine("FootLeft X" + "\t" + TextBox39.Text); 
sw.WriteLine("FootLeft Y" + "\t" + TextBox59.Text); 

sw.WriteLine("FootRight X" + "\t" + TextBox40.Text); 
sw.WriteLine("FootRight Y" + "\t" + TextBox60.Text); 

sw.Close();   
+0

對不起,圖片從excel沒有上傳,將再次嘗試 – user2220794 2013-04-24 14:58:49

+0

使用'Write'而不是WriteLine http://msdn.microsoft.com/en-us/library/ce2kyyb4.aspx – Amitd 2013-04-24 15:00:37

+0

您的意思是使用'Write'而不是'WriteLine'? 'WriteLine'使每個條目都進入一個新行。 – 2013-04-24 15:01:33

回答

0

sw.Write將允許您編寫內嵌文本。

WriteLine創建換行符。

0

跳過WriteLine的「Line」部分,然後使用Write?

0

我可能是錯在這裏,但我想也許你只是想用Write()代替WriteLine()

WriteLine()將在最後添加一個換行符。所以你想要的是如下:

sw.Write("Head X " + "\t" + TextBox21.Text); 

你可能還需要考慮添加一個額外的分隔符,但這取決於你需要什麼作爲輸出。

相關問題