本文整理汇总了C++中FileObject::setPos方法的典型用法代码示例。如果您正苦于以下问题:C++ FileObject::setPos方法的具体用法?C++ FileObject::setPos怎么用?C++ FileObject::setPos使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FileObject
的用法示例。
在下文中一共展示了FileObject::setPos方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: cd
void FileCommands::cd(FileSystemUser* fileSystem, string path) {
FileObject* fo = fileSystem->getFileObject();
vector<string> dirs = StringService::pathSplit(path);
int oldPos = fo->getPos();
for(int i = 0; i<dirs.size(); ++i) {
if(dirs[i]!="..") {
if(!fo->containsObject(dirs[i])) {
notFoundPath(path);
fo->setPos(oldPos);
return;
}else {
fo->go(dirs[i]);
}
}else {
fo->goUp();
}
}
for(int i = 0; i<dirs.size(); ++i) {
if(dirs[i] == "..") {
fileSystem->cdUp();
}else {
fileSystem->cdDir(dirs[i]);
}
}
}
示例2: edit
void FileCommands::edit(FileSystemUser* fileSystem, string fileName) {
FileObject* fo = fileSystem->getFileObject();
fileName += "$";
int t = fo->getObject(fileName);
if(t) {
fo->setPos(t);
string newContent;
char buff[512];
cout<<"enter new content: ";
cin.getline(buff, 512);
newContent = buff;
int begPos = fo->getBeginPos();
string sys = fileSystem->getSystem();
fo->go(fileName);
int beg = fo->getPos();
fo->setEndPos();
int end = fo->getPos();
sys.erase(beg, end-beg + 1);
sys.insert(beg, newContent);
fileSystem->setNewSystem(sys);
fo->setBeginPos(begPos);
fo->setFileContent(fileName, newContent);
}else {
notFoundFile(fileName);
return;
}
}