如何在一个应该用程序中同时打开同一个文件
2个回答
展开全部
CFile file;
file.Open(_T("xxx.txt"),CFile::modeCreate|CFile::modeReadWrite|CFile::shareDenyNone);
//shareDenyNone属性就是表示其它地方也可以打开该文件
char buff[10]={'A','B','C','D','E','F'};
file.Write(buff,10);
file.Flush(); //注1
CFile file1;
if(file1.Open(_T("xxx.txt"),CFile::modeReadWrite|CFile::shareDenyNone))
{
char buff1[10]={''};
file1.Read(buff1,10);
file1.SeekEnd(); //注2
char buff3[10]={'1','2','2','2','2','2'};
file1.Write(buff3,10);
file1.Flush(); //注3
file.SeekEnd();
file..Write(buff3,10);
file1.Close();
}
file.Close();
说明:注1,这个Flush函数不能省略,否则file1中就无法看到这些内容,或者说更新的内容没法更新,这样会导致,后面的操作内容可能最终会被file中的内容覆盖掉...如果file是最后关闭的.
注2,如果没有这句也是可以的,因为打开一个文件,它的指针都是指向第一个位置,即它与其它文件是无关的,故file,file1虽然是指向同一个文件,但是它们对文件的操作是相对独立的.
注3,此处也不能省略,因为在file1关闭这前,file也对文件进行读写,如果在这段程序中,如果不进行
注3的操作,会导到file1的写操作会被后面file的写操作给覆盖掉.....
总结,在同时打开的文件中要互相配合,此时就要控制好文件指针位置,同时要时时刷新文件,已保证此时操作的文件内容是最新.....
file.Open(_T("xxx.txt"),CFile::modeCreate|CFile::modeReadWrite|CFile::shareDenyNone);
//shareDenyNone属性就是表示其它地方也可以打开该文件
char buff[10]={'A','B','C','D','E','F'};
file.Write(buff,10);
file.Flush(); //注1
CFile file1;
if(file1.Open(_T("xxx.txt"),CFile::modeReadWrite|CFile::shareDenyNone))
{
char buff1[10]={''};
file1.Read(buff1,10);
file1.SeekEnd(); //注2
char buff3[10]={'1','2','2','2','2','2'};
file1.Write(buff3,10);
file1.Flush(); //注3
file.SeekEnd();
file..Write(buff3,10);
file1.Close();
}
file.Close();
说明:注1,这个Flush函数不能省略,否则file1中就无法看到这些内容,或者说更新的内容没法更新,这样会导致,后面的操作内容可能最终会被file中的内容覆盖掉...如果file是最后关闭的.
注2,如果没有这句也是可以的,因为打开一个文件,它的指针都是指向第一个位置,即它与其它文件是无关的,故file,file1虽然是指向同一个文件,但是它们对文件的操作是相对独立的.
注3,此处也不能省略,因为在file1关闭这前,file也对文件进行读写,如果在这段程序中,如果不进行
注3的操作,会导到file1的写操作会被后面file的写操作给覆盖掉.....
总结,在同时打开的文件中要互相配合,此时就要控制好文件指针位置,同时要时时刷新文件,已保证此时操作的文件内容是最新.....
2016-12-13
展开全部
1、在命令行输入变量TASKBAR,打开多文件启动多个程序就输入1回车,打开多文件启动一个程序就输入0回车。
2、也可以把任务栏的图标设置成合并一起的,在AutoCAD里面及时启动多个程序,图纸都显示在一个标签栏里。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |