2013-02-20 68 views
0

我想用FileHelper讀取一個csv文件,其中的數據排列如下: 0,0,0,0,0,0,0,1,1,1,0 ,0,0,0,...... 其中1kX1k。 這裏是我的FileHelper代碼:FileHelper讀取csv文件凍結

[DelimitedRecord(",")] 
    public class ROIMaskCSV 
    { 
     public int value; 

     //[TransformToRecord(typeof(ROIMaskCSV[]))] 
     public static ROIMaskCSV[] loadMask(string fileName) 
     { 

      DelimitedFileEngine engine = new DelimitedFileEngine(typeof(ROIMaskCSV)); 

      ROIMaskCSV[] mask = (ROIMaskCSV[])engine.ReadFile(fileName); 

      // mask[0].value = this.value; 

      return mask; 
     } 
    } 

而且這裏是FileHelper loadMask()函數被調用:

public class TIFFIImageIO 
{ 
    public static int LoadTIFF(string fileName, int x, int y) 
    { 

     ROIMaskCSV[] mask = ROIMaskCSV.loadMask("d:\\myMask.csv"); 
     ...... 

我臨危受命,所以當程序得到:

ROIMaskCSV[] mask = (ROIMaskCSV[])engine.ReadFile(fileName); 

的程序只是凍結。我不確定發生了什麼事。我做錯了什麼?任何人都可以提供一些建議?任何建議表示讚賞。

+0

多少時間沒有你給它?這可能只是緩慢嗎? – 2013-02-20 16:04:52

+0

我會對分鐘說。它看起來不正確...... – 2013-02-20 16:05:51

+0

該程序是否仍在使用CPU? – 2013-02-20 16:12:35

回答

2

好的。我放棄。我只會流讀取文件,然後解析它。這是我讀我的CSV文件中的代碼:

byte[] array = System.IO.File.ReadAllBytes(fileName); 

然後轉換陣列[I]爲char/int或任何類型你想要的。

了Char,例如ASC轉換II 65 'A':

char.ConvertFromUtf32(65); 

爲int,例如ASC轉換II 48〜0:

Convert.ToInt32(char.ConvertFromUtf32(48));