我有一段C语言的程序
size_t Bytein;
FILE *ParaFile;
sPAR Para; //自定义的结构体,里面均为double类型变量。UpdateData(TRUE);
ParaFile = fopen(m_PARAPATH,"rb");Bytein=fread(&Para,8,3,ParaFile); //每次读取8个字节共读取3次,赋给结构体里的前3个变量。
fseek(ParaFile,2*8,SEEK_CUR);
Bytein=fread(&Para,8,3,ParaFile);
......现在需要把这段程序改成c#的, 下面是我写的部分代码,始终调试不出来结果。哪位大神懂的,麻烦帮我。非常感谢。
byte[] Bytein =new byte[423];
sPAR Para;FileStream myStream =new FileStream(workDir,FileMode.Open,FileAccess.Read);
BinaryReader myReader=new BinaryReader(myStream);myReader.Read(Bytein,0,8*3);
par.d1=?; //后面不知道怎么写。
par.d2=;
par.d3=;myReader.BaseStream.Seek(2*8,SeekOrigin.Current);
myReader.Read(Bytein,0,8*3);
Par.e1=;
Par.e2=;
Par.e3=;
size_t Bytein;
FILE *ParaFile;
sPAR Para; //自定义的结构体,里面均为double类型变量。UpdateData(TRUE);
ParaFile = fopen(m_PARAPATH,"rb");Bytein=fread(&Para,8,3,ParaFile); //每次读取8个字节共读取3次,赋给结构体里的前3个变量。
fseek(ParaFile,2*8,SEEK_CUR);
Bytein=fread(&Para,8,3,ParaFile);
......现在需要把这段程序改成c#的, 下面是我写的部分代码,始终调试不出来结果。哪位大神懂的,麻烦帮我。非常感谢。
byte[] Bytein =new byte[423];
sPAR Para;FileStream myStream =new FileStream(workDir,FileMode.Open,FileAccess.Read);
BinaryReader myReader=new BinaryReader(myStream);myReader.Read(Bytein,0,8*3);
par.d1=?; //后面不知道怎么写。
par.d2=;
par.d3=;myReader.BaseStream.Seek(2*8,SeekOrigin.Current);
myReader.Read(Bytein,0,8*3);
Par.e1=;
Par.e2=;
Par.e3=;
public void test(FileStream fs)
{
byte[] buffer = new byte[8];
fs.Read(buffer, 0, 8);
par.d1 = buffer;
fs.Read(buffer, 0, 8);
par.d2 = buffer;
fs.Read(buffer, 0, 8);
par.d3 = buffer;
}
而且我读的是二进制的文件,结构体里的变量最后输出的结果为正或负的小数(类似-1.153232e-02这种)
{
byte[] buffer = new byte[8];
fs.Read(buffer, 0, 8);
par.d1 = (double)buffer;
fs.Read(buffer, 0, 8);
par.d2 = (double)buffer;
fs.Read(buffer, 0, 8);
par.d3 =(double)buffer;
}