以下是打开按钮的代码
CFileDialog *txt; //定义一个CfileDialog对象 CStdioFile file;
CString PathName;
int length,row;
CString result;
//生成一个对话框
txt = new CFileDialog(TRUE,_T(""),_T(""),OFN_FILEMUSTEXIST |OFN_HIDEREADONLY , _T("文件类型(*.txt)|*.txt|所有文件(*.*)|*.*|"));
if(txt->DoModal()==IDOK)
{
PathName=txt->GetPathName();
}
CString strLine,strTemp;
row = 0;
while(file.ReadString(strLine))
{
char *str = strLine.GetBufferSetLength(strLine.GetLength());
char *p; if(strLine!="")
{
for (p=strtok(str,";");p!=NULL;p=strtok(NULL,";"))
{
strTemp = p;
result+=strTemp;
}
row ++;
}
}
delete txt;//释放分配的对话框
m_strText = result;
UpdateData(false);运行时候报错:char *str = strLine.GetBufferSetLength(strLine.GetLength());这句代码无法转换“初始化”: 无法从“wchar_t *”转换为“char *”与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
CFileDialog *txt; //定义一个CfileDialog对象 CStdioFile file;
CString PathName;
int length,row;
CString result;
//生成一个对话框
txt = new CFileDialog(TRUE,_T(""),_T(""),OFN_FILEMUSTEXIST |OFN_HIDEREADONLY , _T("文件类型(*.txt)|*.txt|所有文件(*.*)|*.*|"));
if(txt->DoModal()==IDOK)
{
PathName=txt->GetPathName();
}
CString strLine,strTemp;
row = 0;
while(file.ReadString(strLine))
{
char *str = strLine.GetBufferSetLength(strLine.GetLength());
char *p; if(strLine!="")
{
for (p=strtok(str,";");p!=NULL;p=strtok(NULL,";"))
{
strTemp = p;
result+=strTemp;
}
row ++;
}
}
delete txt;//释放分配的对话框
m_strText = result;
UpdateData(false);运行时候报错:char *str = strLine.GetBufferSetLength(strLine.GetLength());这句代码无法转换“初始化”: 无法从“wchar_t *”转换为“char *”与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
把char *str = strLine.GetBufferSetLength(strLine.GetLength());这句代码无法转换
改为
wchar_t *str = strLine.GetBufferSetLength(strLine.GetLength());这句代码无法转换char *p;也改为wchar_t *p;strtok改为wcstok
_T("文件类型(*.txt)|*.txt|所有文件(*.*)|*.*||")
CString PathName;
int row;
CString result;
//生成一个对话框
txt = new CFileDialog(TRUE,_T(""),_T(""),OFN_FILEMUSTEXIST |OFN_HIDEREADONLY , _T("文件类型(*.txt)|*.txt|所有文件(*.*)|*.*|"));
if(txt->DoModal()==IDOK)
{
PathName=txt->GetPathName();
SetWindowText(PathName);
}
if(PathName == "") return; if(!file.Open(PathName,CFile::modeRead))
{
MessageBox(_T("can not open file!"));
return;
}
CString strLine,strTemp;
row = 0;
while(file.ReadString(strLine))
{
wchar_t *str = strLine.GetBufferSetLength(strLine.GetLength());
wchar_t *p; if(strLine!="")
{
for (p=wcstok(str,_T(";"));p!=NULL;p=wcstok(NULL,_T(";")))
{
strTemp = p;
result+=strTemp;
}
row ++;
}
}
delete txt;//释放分配的对话框
m_strText = result;
UpdateData(false);