📄 inifile.cpp
字号:
// ------------------------------------------------// File : inifile.cpp// Date: 4-apr-2002// Author: giles// Desc: // .INI file reading/writing class//// (c) 2002 peercast.org// ------------------------------------------------// This program is free software; you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation; either version 2 of the License, or// (at your option) any later version.// This program is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the// GNU General Public License for more details.// ------------------------------------------------#include <stdlib.h>#include "inifile.h"#include "sys.h" void openReadOnly(const char *); void openWriteReplace(const char *);// -----------------------------------------bool IniFile::openReadOnly(const char *fn){ try { fStream.openReadOnly(fn); }catch(StreamException &) { return false; } return true;}// -----------------------------------------bool IniFile::openWriteReplace(const char *fn){ try { fStream.openWriteReplace(fn);#if defined(_LINUX) || defined(__APPLE__) fStream.writeCRLF = false;#endif }catch(StreamException &) { return false; } return true;}// -----------------------------------------void IniFile::close(){ fStream.close();}// -----------------------------------------bool IniFile::readNext(){ if (fStream.eof()) return false; try { fStream.readLine(currLine,256); }catch(StreamException &) { return false; } // find end of value name and null terminate char *nend = strstr(currLine,"="); if (nend) { *nend = 0; valueStr = trimstr(nend+1); }else valueStr = NULL; nameStr = trimstr(currLine); return true;}// -----------------------------------------bool IniFile::isName(const char *str){ return stricmp(getName(),str)==0;}// -----------------------------------------char * IniFile::getName(){ return nameStr;}// -----------------------------------------int IniFile::getIntValue(){ if (valueStr) return atoi(valueStr); else return 0;}// -----------------------------------------char * IniFile::getStrValue(){ if (valueStr) return valueStr; else return "";}// -----------------------------------------bool IniFile::getBoolValue(){ if (!valueStr) return false; if ( (stricmp(valueStr,"yes")==0) || (stricmp(valueStr,"y")==0) || (stricmp(valueStr,"1")==0) ) return true; return false;}// -----------------------------------------void IniFile::writeIntValue(const char *name, int iv){ sprintf(currLine,"%s = %d",name,iv); fStream.writeLine(currLine);}// -----------------------------------------void IniFile::writeStrValue(const char *name, const char *sv){ sprintf(currLine,"%s = %s",name,sv); fStream.writeLine(currLine);}// -----------------------------------------void IniFile::writeSection(const char *name){ fStream.writeLine(""); sprintf(currLine,"[%s]",name); fStream.writeLine(currLine);}// -----------------------------------------void IniFile::writeBoolValue(const char *name, int v){ sprintf(currLine,"%s = %s",name,(v!=0)?"Yes":"No"); fStream.writeLine(currLine);}// -----------------------------------------void IniFile::writeLine(const char *str){ fStream.writeLine(str);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -