Update XString parsing logic
This commit is contained in:
parent
0374410315
commit
333de659ed
@ -6,6 +6,8 @@
|
|||||||
XString::XString()
|
XString::XString()
|
||||||
: XAsset()
|
: XAsset()
|
||||||
, mString("")
|
, mString("")
|
||||||
|
, mRemoveString("")
|
||||||
|
, mContentLength(-1)
|
||||||
{
|
{
|
||||||
SetName("String");
|
SetName("String");
|
||||||
}
|
}
|
||||||
@ -13,6 +15,8 @@ XString::XString()
|
|||||||
XString::XString(const QString aString)
|
XString::XString(const QString aString)
|
||||||
: XAsset()
|
: XAsset()
|
||||||
, mString(aString)
|
, mString(aString)
|
||||||
|
, mRemoveString("")
|
||||||
|
, mContentLength(-1)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -27,6 +31,16 @@ QString XString::GetString() const
|
|||||||
return mString;
|
return mString;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void XString::SetRemoveString(const QString aRemoveString)
|
||||||
|
{
|
||||||
|
mRemoveString = aRemoveString;
|
||||||
|
}
|
||||||
|
|
||||||
|
void XString::SetContentLength(int aContentLength)
|
||||||
|
{
|
||||||
|
mContentLength = aContentLength;
|
||||||
|
}
|
||||||
|
|
||||||
void XString::SetString(const QString& aString)
|
void XString::SetString(const QString& aString)
|
||||||
{
|
{
|
||||||
mString = aString;
|
mString = aString;
|
||||||
@ -68,23 +82,28 @@ void XString::Clear()
|
|||||||
}
|
}
|
||||||
|
|
||||||
void XString::ParseData(QDataStream *aStream)
|
void XString::ParseData(QDataStream *aStream)
|
||||||
{
|
|
||||||
ParseData(aStream, "");
|
|
||||||
}
|
|
||||||
|
|
||||||
void XString::ParseData(QDataStream *aStream, QString aRemoveStr)
|
|
||||||
{
|
{
|
||||||
if (GetPtr() == -1)
|
if (GetPtr() == -1)
|
||||||
{
|
{
|
||||||
mString = ParseCustom(aStream);
|
if (mContentLength == -1)
|
||||||
if (!aRemoveStr.isEmpty())
|
|
||||||
{
|
{
|
||||||
mString = mString.replace(aRemoveStr, "");
|
mString = ParseCustom(aStream);
|
||||||
}
|
}
|
||||||
|
else if (mContentLength != 0)
|
||||||
|
{
|
||||||
|
QByteArray rawString(mContentLength, Qt::Uninitialized);
|
||||||
|
aStream->readRawData(rawString.data(), mContentLength);
|
||||||
|
mString = QString::fromUtf8(rawString);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!mRemoveString.isEmpty())
|
||||||
|
{
|
||||||
|
mString = mString.replace(mRemoveString, "");
|
||||||
|
}
|
||||||
|
|
||||||
if (IsDebug())
|
if (IsDebug())
|
||||||
{
|
{
|
||||||
qDebug() << QString("[%1] mString = %2").arg(aStream->device()->pos(), 10, 10, QChar('0')).arg(mString);
|
qDebug() << QString("[%1] mString = %2").arg(aStream->device()->pos(), 10, 10, QChar('0')).arg(mString);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user