QString strKey(strKeyName + "=");
QFile readFile(strFileName);
//打开失败,返回默认字符串及其长度
if (!readFile.open(QFile::ReadOnly | QIODevice::Text))
{
return StrCopy(strDefault, pReturnedValue, size);
}
QTextStream readStream(&readFile);
while (!readStream.atEnd())
{
QString line(readStream.readLine());
if(line.indexOf(strSection) == 0)//找到Section
{
line = readStream.readLine();
while(line.indexOf(strKey) != 0 && line.indexOf("[") != 0 && !readStream.atEnd())
{
line = readStream.readLine();
}
if (line.indexOf(strKey) == 0)//找到Key
{
QString source(line.mid(strKey.length()));
readFile.close();
return StrCopy(source, pReturnedValue, size);
}
}
}
readFile.close();
//未找到,返回默认值及其长度
return StrCopy(strDefault, pReturnedValue, size);
}
//************************************
// Method: StrCopy
// FullName: MyClass::StrCopy
// Access: Private
// Returns: int
// Parameter: QString source
// Parameter: char *dest
// Parameter: int size
//************************************
int MyClass::StrCopy(QString source, char *dest, int size)
{
QByteArray temp = source.toAscii();
//拷贝字符串;
//size合适,返回不加'/0'的字符串长度
if(source.length() <= size - 1)
{
strcpy(dest, temp.data());
return source.length();
}
//拷贝字符串;
//size过小,返回size-1
else
{
strncpy(dest, temp.data(), size-1);
dest[size - 1] = '/0';
return size-1;
}
}
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-27851-4.html
绝对假的
北洋不得不拱手让出制海权甚至一放弃自己的旅顺大本营二躲进威海大本营而全军覆没