怎么用VC++实现文本的复制粘贴?
发布网友
发布时间:2022-04-20 05:35
我来回答
共5个回答
热心网友
时间:2022-04-20 07:05
CFile file1("1.txt",CFile::modeReadWrite);//打开file1
char buf[4080];//缓冲区
memset(buf,0,4080);
file1.Read(buf,file1.GetLength());
CFile file2("2.txt",CFile::modeWrite);
file2.SeekToEnd();//将文件指针移到最后
file2.Write(buf,file1.GetLength());
file1.Close();//关闭文件
file2.Close();
//把1.txt的内容复制到2.txt中去
// 2.txt必须先存在 也可以创建
//CFile file2("2.txt",CFile::modeCreat);
热心网友
时间:2022-04-20 08:23
将下面的代码加到button的响应函数中即可
char *pBuffer; // 缓冲
int iFileLen; // 文件长度
// 寻找源文件路径的文件对话框
CFileDialog dlgSrc(TRUE, "source", "*.txt", OFN_HIDEREADONLY, "Text Files (*.txt)|*.txt||", NULL );
// 寻找目标文件路径的对话框
CFileDialog dlgDst(FALSE, "target", "*.txt", OFN_OVERWRITEPROMPT, "Text Files (*.txt)|*.txt||", NULL )
if ( IDOK != dlgSrc.DoModal () )
return;
if ( IDOK != dlgDst.DoModal () )
return;
// 得到源和目标文件的路径和名称
CString strFileSrc = dlgSrc.GetPathName ();
CString strFileDst = dlgDst.GetPathName ();
// 打开源和目标文件
CFile fileSrc, fileDst;
fileSrc.Open ( strFileSrc, CFile::modeRead );
fileDst.Open ( strFileDst, CFile::modeCreate | CFile::modeWrite ) ;
// 得到源文件的长度
iFileLen = (int)fileSrc.GetLength();
// 申请缓冲
pBuffer = new char[iFileLen];
// 将源文件读入到缓冲中
fileSrc.Read ( pBuffer, iFileLen );
// 将缓冲写入到目标文件
fileDst.Write ( pBuffer, iFileLen );
fileSrc.Close ();
fileDst.Close ();
// 清除内存防止内存泄露
delete pBuffer;
热心网友
时间:2022-04-20 09:57
【用VC++实现文本的复制粘贴】
//先有个编辑框控件, 其ID为: IDC_EDIT1
char buf[1024];
GetDlgItem(IDC_EDIT1)->GetWindowText(buf,1024);//取源编辑框文本
CString sFile = "D:\\AA.TXT";//文件名.
CFile f;
CFileFind ff;
//检查文件是否已经存在, 不存在则创建,否则打开
if(!ff.FindFile(sFile, 0))
{
f.Open(sFile.GetBuffer(1),CFile::modeCreate,NULL);
f.Close();
}
f.Open(sFile.GetBuffer(1),CFile::modeReadWrite);
//存入.
f.Write(buf, sizeof(buf));
f.Close();
ff.Close();
【补充问题: 读文件:】
CString sFile = "D:\\AA.TXT";//文件名.
CFile f;
CFileFind ff;
char buf[1024]; //每次读1k字节.具体可以根据需要更改.
if(!ff.FindFile(sFile, 0))//检查文件是否存在.
{
ff.Close();
}
else//文件存在则打开文件并读取
{
f.Open(sFile.GetBuffer(3),CFile::modeReadWrite);
f.Read(buf, sizeof(buf));
f.Close();
ff.Close();
}
注: 没有用fread, 因为CFile在VC里面更适用一些
热心网友
时间:2022-04-20 11:49
看你说得应该是文件操作吧。
具体可以用c得fread,fwrite,
第一个文件fopen使用"r"打开,fread到一个人buffer中,第二使用"wa"打开,然后fwrite进去,保证在第二个文件后面追加拷贝得内容。
也可以用cfile或者 cstdiofile等mfc封装得类。
热心网友
时间:2022-04-20 13:57
不懂啊 CTRL+V不行么