我有一个TXT文件,我想在指定位置和开头位置插入字符串,该怎么来实现?
用CFile::write写入的时候并不是插入,而是改写原来的文本,不知道如何才能插入,请高手指教?
用CFile::write写入的时候并不是插入,而是改写原来的文本,不知道如何才能插入,请高手指教?
解决方案 »
- 有关TCP三次握手的一个小疑问?
- 如何获取打开word的文本内容
- 请问可执行文件可以当作dll被动态调用吗?
- 诚聘软件工程师(VC6、北京)
- 内存DC问题?各位,帮忙看看……
- 問一個很基礎的問題,C++中,能用static作成員變量嗎?
- >>>>>难以解决的一个问题,哪位高人请帮忙看一下<<<<<
- 紧急求教:图片的移动问题
- 我以前在创建工程时没有要求windows socket的支持,现在要把它改成联机版,所以就要windows socket的支持,怎么改?
- 高手流芳:如何接受CEdit空件的键盘消息呀?
- 关于属性页的问题,等待中~~~~~~~~~~
- 我在VC下用了SkinLoad进行界面优化,我的程序中有定时器,每40ms刷新一次,执行了200多次后,程序报了Access Violation
比如要在文件头加入一行,在第五行后加入一行,则可以用CStdioFile把文件的内容一行一行读出来,进行操作,再重新写这个文件(覆盖原来的内容):CStringArray arrLines;//存储文件中的行的数组arrLine.Add( "head Line" );//加入第一行
CStdioFile file;
file.open(...);CString strAfterFifth;//在第五行后要加的行
int i = 0;
while( file.ReadString( str ) )
{
i++;
if ( i == 5 )
{
arrLines.Add( strAfterFifth );
}
}file.Seek( 0, CFile::begin );
int nCount = arrLines.GetSize();
for ( int i = 0; i < nCount; i++ )
{
file.WriteString ( arrLines[i] );
}file.Close();
然后在开始位置写入。。
然后写old文件或都用链表,方便一些!~把要插入字符串加入,或是插入!
CHARRANGE crPos;
CRichEditView *pView = GetView();
CRichEditCtrl &edit = pView->GetRichEditCtrl();
//用CHARRANGE结构体获得选择的文本位置
edit.GetSel(crPos);
//要写的内容为12345
str = "12345";
//如果没有选中文本,就直接写在光标后
//如果选中了文本,就替代选中的文本
if (crPos.cpMin != crPos.cpMax)
{
edit.SetSel(crPos.cpMin, crPos.cpMax);
}
else
{
edit.SetSel(crPos.cpMax, crPos.cpMax);
}
edit.ReplaceSel(str);
CreateFileMapping()以及相关函数,请查阅msdn
可以将对文件的操作转为对内存的操作