如何连接两个字符串?
void CSBPlayerDlg::OnmnuFileOpen()
{
CString sMusicFileList;
CFileDialog dlgOpenFile(TRUE,NULL,"*.*",OFN_ALLOWMULTISELECT,NULL,NULL);
if(dlgOpenFile.DoModal()==IDOK){
//sMusicFileList=dlgOpenFile.GetPathName()+"\"+dlgOpenFile.GetFileName();
}
}
上面那个sMusicFileList,是用打开文件路径加文件名连接起来的字符串,请问VC中如何表示呢?
问题点数:0、回复次数:9Top
1 楼Sword_Sharp(多米诺)回复于 2003-11-02 13:48:42 得分 0
在CString中重载了操作符 “+” 你可以直接将两个字符串加在一起,如果事路径名要注意
“/”用“//”替换,否则他后边的字符会被转译Top
2 楼carbon107(<软件开发思想.h>)回复于 2003-11-02 13:53:35 得分 0
strcat()Top
3 楼Sword_Sharp(多米诺)回复于 2003-11-02 13:57:20 得分 0
不好意思,没有仔细看问题。VC中CFileDialog好像只能获取带路径的文件名。你如果想把路径和文件名分开只能自己搞,我这里有个函数可以完成这个工作:
BOOL SplitFileName(const TCHAR *filename, TCHAR *path, TCHAR *name)
{
TCHAR chTmp[1025];
TCHAR *pchp, *pchn;
size_t size;
if(filename == NULL || path == NULL || name == NULL)
return FALSE;
pchp = _tcschr(filename, _T(':'));
if(pchp != NULL)
{
pchp--;
_tcscpy(chTmp, pchp);
}
else
{
_tcscpy(path, _T(""));
_tcscpy(name, _T(""));
return FALSE;
}
pchn = _tcsrchr(chTmp, _T('\\'));
if(pchn != NULL)
_tcscpy(name, pchn + 1);
else
{
_tcscpy(path, _T(""));
_tcscpy(name, _T(""));
return FALSE;
}
size = _tcslen(chTmp) - _tcslen(pchn);
if(size <= 0)
{
_tcscpy(path, _T(""));
_tcscpy(name, _T(""));
return FALSE;
}
_tcsncpy(path, chTmp, size + 1);
path[size + 1] = _T('\0');
return TRUE;
}
Top
4 楼cdwy411(VC$ORACLE)回复于 2003-11-02 14:29:27 得分 0
CString+Ctring ;
strcat(char *,char *);Top
5 楼ShaB(ShaB)回复于 2003-11-02 14:52:56 得分 0
strcat(char *,char *);
两个参数都是字符串指针,那我连接时是不是应该这样做:
CString *myMessage;
CFileDialog myFile;
if(myFile.DoModal()==IDOK){
strcat(myMessage,&myFile.GetPathName());
strcat(myMessage,&myFile.GetFileName());
}
文件名跟路径分开取得,不过我的问题主要是搞不搞连接字符串的问题.能帮我持看这个程序解释一下吗?就上面这几句子。Top
6 楼ablefirst(able)回复于 2003-11-02 15:09:44 得分 0
打开文件对话框,取得路径和文件名,合并到myMessagekTop
7 楼ShaB(ShaB)回复于 2003-11-02 15:15:26 得分 0
像上面那样来用strcat()函数可以吗?我这里是通不过的啊......Top
8 楼yifeng_ch(yifeng)回复于 2003-11-02 16:15:59 得分 0
CFileDialog::GetPathName
Call this function to retrieve the full path of the file entered in the dialog box. The path of the filename includes the file’s title plus the entire directory path. For example, GetPathName will return "C:\FILES\TEXT.DAT" for the file C:\FILES\TEXT.DAT.
Top
9 楼keiven()回复于 2003-11-02 17:17:19 得分 0
把两个字符串加起来啊。CString 类重载了'+'运算符。Top




