none
帮忙把两行C++代码转成C#代码 RRS feed

  • 问题

  • 我需要用C#读取C++写的二进制dat文件,下面是两行C++的读取方式,请老师帮忙把两行C++代码转成C#代码,谢谢

    C++代码:

    CFile file;

    ........//其他代码


    int * m_pLastBuyQuantity  = new  int[count];
    file.Read(m_pLastBuyQuantity, sizeof(int) * count);

     

    C#代码:?


    拒绝垃圾代码
    2011年7月1日 7:12

答案

  • 谢谢回复,问题还是不能解决啊
    拒绝垃圾代码


    尝试这样做:

     using (BinaryReader br = new BinaryReader(new FileStream("C:\\try.dat",FileMode.Open)))
                {
                    int[] numbers = new int[100];  //足够长度
                    int i = 0;

                    while (br.PeekChar()>-1)
                    {
                        numbers[i++]=br.ReadInt32();  //赋值给数组
                    }
                }

    假设你的dat文件都是int类型。

    如果仍还不行,我只能怀疑C++的二进制和C#有不同格式的,建议全部用C#做一次。


    如果你有其它意见或私下交流,请发送邮件到:maledong@qq.com;或者请讨论(Talk)
    If you do not have QQ, please open the page and download it and click the image to talk or leave message for me.
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    2011年7月7日 2:59
    版主

全部回复

  • 您好,如果您使用unsafe块,那么这两段代码几乎需要任何改变:

    int * m_pLastBuyQuantity = stackalloc int[count];
    file.Read(m_pLastBuyQuantity, sizeof(int) * count);
    

    2011年7月1日 8:08
  • 我需要用C#读取C++写的二进制dat文件,下面是两行C++的读取方式,请老师帮忙把两行C++代码转成C#代码,谢谢
    int * m_pLastBuyQuantity  = new  int[count];
    file.Read(m_pLastBuyQuantity, sizeof(int) * count);

    C#代码:?


    拒绝垃圾代码

    你好:)

    尝试这样做:

    byte[]bytes=null;

    bytes = System.IO.File.ReadAllBytes("Your File Absolute Path Here");


    如果你有其它意见或私下交流,请发送邮件到:maledong@qq.com;或者请讨论
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处

    2011年7月4日 5:31
    版主
  • 谢谢回复,问题还是不能解决啊
    拒绝垃圾代码
    2011年7月6日 9:50
  • 谢谢回复,问题还是不能解决啊
    拒绝垃圾代码


    尝试这样做:

     using (BinaryReader br = new BinaryReader(new FileStream("C:\\try.dat",FileMode.Open)))
                {
                    int[] numbers = new int[100];  //足够长度
                    int i = 0;

                    while (br.PeekChar()>-1)
                    {
                        numbers[i++]=br.ReadInt32();  //赋值给数组
                    }
                }

    假设你的dat文件都是int类型。

    如果仍还不行,我只能怀疑C++的二进制和C#有不同格式的,建议全部用C#做一次。


    如果你有其它意见或私下交流,请发送邮件到:maledong@qq.com;或者请讨论(Talk)
    If you do not have QQ, please open the page and download it and click the image to talk or leave message for me.
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    2011年7月7日 2:59
    版主