[問題] 將一整串數字矩陣寫到TXT檔裡

看板C_Sharp (C#)作者 (什麼都不懂的人真幸福...)時間13年前 (2012/07/05 21:39), 編輯推噓1(109)
留言10則, 2人參與, 最新討論串1/1
大家好 最近在練習將bmp檔裡的R、G、B pixel分別存到矩陣裡 接著再存到txt裡 以下是我的程式 System.IO.StreamWriter R_Data = new System.IO.StreamWriter("D:\\R_Data.txt", false, Encoding.BigEndianUnicode); System.IO.StreamWriter G_Data = new System.IO.StreamWriter("D:\\G_Data.txt", false, Encoding.BigEndianUnicode); System.IO.StreamWriter B_Data = new System.IO.StreamWriter("D:\\B_Data.txt", false, Encoding.BigEndianUnicode); byte[] pixel_R = new byte[100]; <-假設都是255 byte[] pixel_G = new byte[100]; <-假設都是255 byte[] pixel_B = new byte[100]; <-假設都是255 //接著將byte矩陣轉為字串矩陣,combine後就寫入txt檔裡 B_Data.WriteLine(String.Join("", Array.ConvertAll(pixel_B, id => Char.ConvertFromUtf32(id)))); G_Data.WriteLine(String.Join("", Array.ConvertAll(pixel_G, id => Char.ConvertFromUtf32(id)))); R_Data.WriteLine(String.Join("", Array.ConvertAll(pixel_R, id => Char.ConvertFromUtf32(id)))); R_Data.Close(); G_Data.Close(); B_Data.Close(); 原本預期在ultraedit裡會看到如下結果 FF FF FF FF FF ...... FF FF FF FF FF...... 不過實際上卻是 00 FF 00 FF 00 FF ..... 00 FF 00 FF 00 FF ..... 我有懷疑是StreamWriter裡面的編碼造成的 因此我有試過其他種編碼 不過都是錯誤的 想請問大家不知道是哪邊想錯了 或是說還有哪幾種改法呢?? 謝謝大家 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.160.153.142

07/05 21:58, , 1F
System.IO.FileStream R_Data =
07/05 21:58, 1F

07/05 21:59, , 2F
new System.IO.FileStream(@"c:\temp\test_r.txt",
07/05 21:59, 2F

07/05 21:59, , 3F
System.IO.FileMode.Create);
07/05 21:59, 3F

07/05 21:59, , 4F
byte[] pixel_R = new byte[100]; // <-假設都是255
07/05 21:59, 4F

07/05 21:59, , 5F
R_Data.Write(pixel_R, 0, pixel_R.Length);
07/05 21:59, 5F

07/05 21:59, , 6F
R_Data.Close();
07/05 21:59, 6F

07/05 22:01, , 7F
直接寫出陣列即可,不必將位元陣列轉成Unicode字串。
07/05 22:01, 7F

07/05 22:59, , 8F
感謝 因為之前都是使用writeline方式
07/05 22:59, 8F

07/05 23:00, , 9F
然後今天花了一整天在對抗format的問題
07/05 23:00, 9F

07/06 18:59, , 10F
OK了,真的非常感謝
07/06 18:59, 10F
文章代碼(AID): #1FzPa9Gh (C_Sharp)
文章代碼(AID): #1FzPa9Gh (C_Sharp)