コード例 #1
0
bool San::FileIOStream::gloWriteFile(const SString &strFilePath, const SStringW &strData, const bool bCover)
{
	if (strFilePath.empty())
	{
		return false;
	}
	ios::openmode FileFlag = ios::binary | ios::out;
	if (bCover)
	{
		FileFlag = FileFlag | ios::trunc;
	}
	else
	{
		FileFlag = FileFlag | ios::ate;
	}
	fstream* pFile = new fstream(strFilePath, FileFlag, 0x40);
	if (pFile == nullptr)
	{
		return false;
	}
	pFile->write((const char*) strData.c_str(), sizeof(swchar) *strData.size());
	pFile->close();
	delete pFile;
	pFile = nullptr;
	return true;
}
コード例 #2
0
SStringW cXMLLoader::_StringTranslate(SStringW strSource)
{
	if (strSource.empty())
	{
		return L"";
	}
	uint32 Size = strSource.length() + 1;
	swchar* pDest = new swchar[Size];
	::gloMemSet(pDest, 0, sizeof(swchar) *Size);
	const swchar* pSrc = strSource.c_str();
	uint32 DestSeek = 0;
	for (uint32 seek = 0; seek<Size; seek = seek + 1)
	{
		if (pSrc[seek] != L'&')
		{
			pDest[DestSeek] = pSrc[seek];
		}
		else
		{
			uint32 seek_begin = seek;
			while ((seek<Size) && (pSrc[seek] != L';'))
			{
				seek = seek + 1;
			}
			if (seek == Size)
			{
				delete[] pDest;
				pDest = nullptr;
				return L"";
			}
			switch (seek - seek_begin - 1)
			{
			case 2:
				if ((pSrc[seek_begin + 1] == L'l') && (pSrc[seek_begin + 2] == L't'))
				{
					pDest[DestSeek] = L'<';
				}
				if ((pSrc[seek_begin + 1] == L'g') && (pSrc[seek_begin + 2] == L't'))
				{
					pDest[DestSeek] = L'>';
				}
				break;
			case 3:
				if ((pSrc[seek_begin + 1] == L'a') && (pSrc[seek_begin + 2] == L'm') && (pSrc[seek_begin + 3] == L'p'))
				{
					pDest[DestSeek] = L'&';
				}
				break;
			case 4:
				if ((pSrc[seek_begin + 1] == L'a') && (pSrc[seek_begin + 2] == L'p') && (pSrc[seek_begin + 3] == L'o') && (pSrc[seek_begin + 4] == L's'))
				{
					pDest[DestSeek] = L'\'';
				}
				if ((pSrc[seek_begin + 1] == L'q') && (pSrc[seek_begin + 2] == L'u') && (pSrc[seek_begin + 3] == L'o') && (pSrc[seek_begin + 4] == L't'))
				{
					pDest[DestSeek] = L'=';
				}
				break;
			default:
				delete[] pDest;
				pDest = nullptr;
				return L"";
			}
		}
		DestSeek = DestSeek + 1;
	}
	SStringW DestString = pDest;
	delete[] pDest;
	pDest = nullptr;
	return DestString;
}