0

我正在尝试使用 FileHelper 读取一个 csv 文件,其中的数据排列如下:0,0,0,0,0,0,0,1,1,1,0,0,0,0,.. .... 1kX1k 他们。这是我的 FileHelper 代码:

[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); 

该程序刚刚冻结。我不确定发生了什么。我做错了什么?任何人都可以提供一些指示吗?任何建议表示赞赏。

4

1 回答 1

2

好的。我放弃。我只会流式读取文件,然后解析它。这是我阅读我的 csv 文件的代码:

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

然后将 array[i] 转换为 char/int 或任何你想要的类型。

以 char 为例,将 ASC II 65 转换为 'A':

char.ConvertFromUtf32(65);

以 int 为例,将 ASC II 48 转换为 0:

Convert.ToInt32(char.ConvertFromUtf32(48));
于 2013-02-20T17:27:18.250 回答