写数据处理程序,我通常用vc 实现: 先打开要处理的原始数据文件(一般都是500M左右),分配一块大约2M左右的动态内存,然后将文件按照一次读取2M,将文件内容存放到已经分配好的2M内存中,再对该2M内中的数据进行处理,然后将结果数据落盘。就这样程序按照每次处理2M的速度将文件处理完毕。
我想问的是用c#如何实现?
1.用vc编写一个dll 文件然后由c#调用。--这个方法我知道
2.用c#编写不安全代码段?在c#中可以分配动态内存吗?
3.建一个2M的数组?用2M的数组代替vc中2M的动态内存?
4.用流读取文件,然后对流进行处理?请有经验的各位高手谈谈你的经验和看法好吗?我上述的4个实现方法哪个是可行的,效果及优缺点各是什么?您还有没有其他更好的方法,能实现我的要求,即用C# 编写数据处理程序(我是做通信研究的经常需要编写程序实现数据处理,如给数据加扰码、Rs码等等)

解决方案 »

  1.   

    既然用 c#, .net 为何不用内存数据库系统 (DataSet, DataTable)?
    要造轮子?
      

  2.   

    lz想多了。只要不涉及指针,就不存在不安全的问题。至于动态分配内存,在托管环境下,就是动态产生对象。int[] data = new int[10000];
    People[] p = new People();
    ...这些都是动态生成。至于内存分配的细节,CLR已经帮你搞定了。
      

  3.   

    3楼caozhy所说的证实了我讲的第3种方法是可行的,谢谢你的回答。
    大家都说说 自己的看法好吗?我说的第1种和第3种方法哪个更好,优缺点是什么?第4种方法能否实现我的要求,具体如何去实现?还有其他的方法吗
      

  4.   

    caozhy所说的证实了我讲的第3种方法是可行的,谢谢你的回答。
    大家都说说 自己的看法好吗?我说的第1种和第3种方法哪个更好,优缺点是什么?第4种方法能否实现我的要求,具体如何去实现?还有其他的方法吗
      

  5.   

    你说的是ADO 连接数据库吗 我说的是处理数据 不是处理数据库啊
      

  6.   

    1.用vc编写一个dll 文件然后由c#调用。--这个方法我知道
    那我就不废话了,呵呵。
    2.用c#编写不安全代码段?在c#中可以分配动态内存吗?
    可以这么做的,参考:
    Unsafe programming in C#
    3.建一个2M的数组?用2M的数组代替vc中2M的动态内存?
    参考第二个问题的回答,如果你要自己控制内存分配,就要做非安全的编程了。
    4.用流读取文件,然后对流进行处理?
    一般在C#中,就是通过文件流来处理文件的。