void WriteStrings(Strings strings, FILE *f) { // Make sure data is packed. LFK_Defragment(strings.table); // Save number of rows. int rows = strings.table->len; fwrite(&rows, sizeof(rows), 1, f); int i; for (i = 0; i < strings.table->len; i++) { char *text = ((char**)strings.table->data[0])[i]; StringToFile(f, text); } }
HRESULT XZPManager::XZPOpen(string opath, string filename, string xmlname) { m_basePath = SETTINGS::getInstance().getDataPath(); DebugMsg("DEBUG", "%s", m_basePath.c_str()); string loadfilename = "file://" + opath + filename; loadfilename = str_replaceall(loadfilename, "\\", "/"); Path = strtowchar(loadfilename); DebugMsg("XZPManager", "PATH: %s, loading package", wstrtostr(Path).c_str()); HRESULT hr = XuiResourceOpenPackage(Path,&phPackage,false); if (hr != S_OK) { DebugMsg("XZPManager", "Error HRESULT: %08x", hr); return hr; } else { szLocator = strtowchar(loadfilename + "#" + xmlname); byte * buf; UINT size; hr = XuiResourceLoadAllNoLoc(szLocator, &buf, &size); if (hr != S_OK) { DebugMsg("XZPManager", "HRESULT : %08x, Loading resource"); XuiResourceReleasePackage(phPackage); return hr; } else { DebugMsg("XZPManager", "Resource is in memory Size is %d", size); string out = (char*)buf; string outpath = sprintfaA("%sSkins\\%s\\%s", m_basePath.c_str(), filename.c_str(), xmlname.c_str()); DebugMsg("XZPManager", "Saving file to %s", outpath.c_str()); StringToFile(out, outpath); XuiFree((void*)buf); } } XuiResourceReleasePackage(phPackage); return S_OK; }
void ContentKaiVector::Save(const string strPath) { if (m_bDirty) { // Remove old file _unlink(strPath.c_str()); EnterCriticalSection(&m_critical); string strXMLText; strXMLText = sprintfaA("<version>%d</version>\n", m_nVersion); strXMLText.append("<titles>\n"); for (TITLEVECTORMAP::iterator it = m_mapTitles.begin(); it != m_mapTitles.end(); it++) { string strTitleId, strVector; DWORD dwTitleId = it->first; strTitleId = sprintfaA("0x%X", dwTitleId); strVector = it->second; strXMLText.append("\t<title>\n"); strXMLText.append("\t\t<id>"); strXMLText.append(strTitleId); strXMLText.append("</id>\n"); strXMLText.append("\t\t<vector>"); strXMLText.append(strVector); strXMLText.append("</vector>\n"); strXMLText.append("\t</title>\n"); } strXMLText.append("</titles>"); LeaveCriticalSection(&m_critical); StringToFile(strXMLText, strPath); DebugMsg("ContentKaiVector", "File: %s saved completed.", strPath.c_str()); m_bDirty = false; } }