读书人

高手帮小弟我看看这个有关问题是为什么

发布时间: 2012-03-05 11:54:03 作者: rapoo

高手帮我看看这个问题是为什么呀C++Builder
我想在一个文件的尾部加入一些信息,再读出来
//加入函数
void __fastcall TForm1::Button3Click(TObject *Sender)
{

AnsiString sourcepath=Edit1-> Text;
TFileStream *m_stream;
m_stream=new TFileStream(sourcepath,fmOpenWrite|fmShareExclusive);


AnsiString type=ComboBox1-> Text;
int typelen=type.Length();//执行到此值为16
try
{
m_stream-> Seek(0,soFromEnd);
m_stream-> Write(&typelen, sizeof(int));

}
__finally
{
delete m_stream;
m_stream=NULL;
}
//读出函数
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString filepath=Edit1-> Text;
TFileStream *m_stream;
m_stream=new TFileStream(filepath,fmOpenRead|fmShareExclusive);
int filetypelen;
m_stream-> Seek(-sizeof(filetypelen),soFromEnd);//-sizeof(filetypelen)值不是-4,也是一大值
m_stream-> Read(&filetypelen,sizeof(filetypelen));//读出来的是一个很大的值
delete m_stream;
m_stream=NULL;

}

[解决办法]
试试这样:
m_stream-> Seek((-1)*sizeof(int),soFromEnd);
m_stream-> Read(&filetypelen,sizeof(int));

读书人网 >C++ Builder

热点推荐