#include "StdAfx.h" #include ".\excelmanager.h" #include //ole variant declare COleVariant vTrue((short)TRUE), vFalse((short)FALSE), vOption((long)DISP_E_PARAMNOTFOUND, VT_ERROR); CExcelManager::CExcelManager(void) { m_nNumSheet = 1; m_nColCount = 0; } CExcelManager::~CExcelManager(void) { DeleteAllItem(); m_book.Close(vFalse, vOption, vOption); m_app.Quit(); m_app.ReleaseDispatch(); } BOOL CExcelManager::InitExcel(CString strName) { /************************************************************************/ /* app ¿¢¼¿ ¿ÀÇÁÁ§Æ® »ý¼º */ /************************************************************************/ if(m_app.m_lpDispatch == NULL) { m_app.CreateDispatch("Excel.Application"); } /************************************************************************/ /* Get WorkBooks */ /************************************************************************/ m_books = m_app.get_Workbooks(); /************************************************************************/ /* ÆÄÀÏ¿ÀÇ / get workbook */ /************************************************************************/ if(!strName.IsEmpty()) //±âÁ¸ ÆÄÀÏÀ» ¿­¶§ { m_book = m_books.Open(strName, vOption, vTrue, vOption, vOption, vOption, vOption, vOption, vOption, vOption, vOption, vOption, vOption, vOption, vOption); } else //»õ·Î¿î ÆÄÀÏÀ» ¿­¶§ { m_book = m_books.Add(vOption); // »õÆÄÀÏÀ» ¿­ °æ¿ì } /************************************************************************/ /* Get WorkSheets */ /************************************************************************/ m_sheets = m_book.get_Worksheets(); /************************************************************************/ /* Get WorkSheet */ /************************************************************************/ m_nNumSheet = m_sheetInfo[m_nScriptType].GetSheetNumber(); m_sheet = m_sheets.get_Item(COleVariant((short)m_nNumSheet)); m_sheet.Activate(); return TRUE; } CString CExcelManager::GetValue(CString strCell) { m_range = m_sheet.get_Range(COleVariant(strCell), COleVariant(strCell)); VARIANT value = m_range.get_Value2(); CString strValue; switch(value.vt) { case VT_R8: //VT_R8 : 8-byte real. { strValue.Format("%f", value.dblVal); break; } case VT_BSTR: //VT_BSTR : Binary string { strValue = (CString)value.bstrVal; break; } case VT_EMPTY: { strValue = _T(""); break; } } return strValue; } //Ä÷³ÀÇ ³Ñ¹ö¸¦ ÀÔ·ÂÇϸé, Ä÷³ÀÇ ¹®ÀÚ¿­À» ¹ÝȯÇÑ´Ù. //ÇöÀç´Â AºÎÅÍ ZZ±îÁö¸¸ Áö¿øÇÑ´Ù. //Ä÷³Àº 1ºÎÅÍ ½ÃÀÛÇÑ´Ù. //A´Â ¾Æ½ºÅ°ÄÚµå·Î 65ÀÌ´Ù. //¾ËÆÄºªÀÇ °³¼ö´Â 26°³ÀÌ´Ù. CString CExcelManager::GetXLColNumFromInt(int nCol) { CString str = ""; char buf[2]; int nMok = nCol / 26; int nNa = (nCol % 26); int nAdd = 0; if(nMok >= 1 && nNa == 0) { nMok--; nAdd = 26; } else nAdd = nNa; if(nMok == 0) //¸òÀÌ ¾øÀ¸¸é(0À̸é) A~Z¿­ »çÀÌÀÌ´Ù. { asctoa(nAdd + 65 - 1, buf); str.Format("%s", buf); } else if(nMok >= 1) //¸òÀÌ 1ÀÌ»óÀ̸é AA~ZZ»çÀÌÀÌ´Ù. { asctoa(nAdd + 65 - 1, buf); str.Format("%s", buf); //µÞÀÚ¸® CString str2; asctoa(nMok + 65 - 1, buf); str2.Format("%s", buf); //¾ÕÀÚ¸® str2 += str; str = str2; } return str; } void CExcelManager::asctoa(int nCode, char* szBuf) { szBuf[0] = (char)nCode; szBuf[1] = NULL; } //Ä÷³ÀÇ ¹®ÀÚ¿­¿¡ ÇØ´çÇÏ´Â Ä÷³¼ö¸¦ ¹ÝȯÇÑ´Ù. int CExcelManager::GetXLColNumFromString(CString strRow) { int nCnt = strRow.GetLength(); int nNum[10]; int nSum = 0; int nSu = 0; for(int i = nCnt - 1; i >= 0 ; i--) { char ch = strRow.GetAt(i); nNum[i] = (int)ch; nNum[i] -= 64; //A°¡ 65ÀÓ¿¡µµ ºÒ±¸Çϰí 64¸¦ ¹è´Â°ÍÀº ¾Æ·¡¿¡¼­ °öÇϱ⸦ Çϱ⠶§¹®¿¡ A°ªÀÌ 0ÀÌ µÇ¼­´Â ¾ÈµÇ°í, nNum[i] = nNum[i]*(int)pow(26, nSu); //1ÀÌ µÇ¾î¾ß Çϱ⠶§¹®ÀÌ´Ù. nSum += nNum[i]; nSu++; } return nSum; } vector CExcelManager::GetTitle() { vector vecTitle; CString strStt = m_sheetInfo[m_nScriptType].GetSttCol(); CString strEnd = m_sheetInfo[m_nScriptType].GetEndCol(); int nSttCol = GetXLColNumFromString(m_sheetInfo[m_nScriptType].GetSttCol()); int nEndCol = GetXLColNumFromString(m_sheetInfo[m_nScriptType].GetEndCol()); int nCnt = nEndCol - nSttCol; //Çà int nRow = m_sheetInfo[m_nScriptType].GetSttRow(); int nCol = nSttCol; while(nCol <= nEndCol) { CString strCell, strValue; strCell.Format("%s%d", GetXLColNumFromInt(nCol), nRow); strValue = GetValue(strCell); vecTitle.push_back(strValue); nCol++; } return vecTitle; } CString CExcelManager::GetErrorDescription(int nError) { CString str; if(nError == 1) str = "¼ýÀÚ°¡ µé¾î°¡¾ß Çϴµ¥ NULLÀÌ µé¾î°¡ ÀÖ´Ù"; else if(nError == 2) str = "¼ýÀÚ°¡ µé¾î°¡¾ß Çϴµ¥ ¹®ÀÚ¿­ÀÌ µé¾î°¡ ÀÖ´Ù."; else if(nError == 3) str = "À߸øµÈ ¼ýÀÚ°ªÀÌ ÀԷµǾú´Ù."; else if(nError == 4) str = "¹®ÀÚ°¡ µé¾î°¡¾ß Çϴµ¥ ¼ýÀÚ°¡ ÀԷµǾú´Ù."; else if(nError == 5) str = "ºóÄ­ÀÌ ÀԷµǾú½À´Ï´Ù."; else if(nError == 6) str = "¾Ë¼ö¾ø´Â Àß ¸øµÈ °ªÀÌ µé¾î°¬½À´Ï´Ù."; return str; } BOOL CExcelManager::LoadSheetData(void) { COleVariant covOptional(DISP_E_PARAMNOTFOUND, VT_ERROR); //ÃʱâÈ­.. DeleteAllItem(); // ¿¢¼¿ÀÌ È°¼ºÈ­ µÇ¾î ÀÖ´ÂÁö üũ if (m_app.m_lpDispatch == NULL) { AfxMessageBox("Excel has not been started."); return FALSE; } //¿öÅ©½ÃÆ®´Â Init ÇÔ¼ö¿¡¼­ ¾ò¾ú´Ù.. (³ªÁß¿¡ Init ÇÔ¼ö¶û ºñ±³Çؼ­, Á¤¸®ÇÒ°Í) //½ÃÀÛ µ¥ÀÌÅÍ ¼³Á¤ int nSttCol = GetXLColNumFromString(m_sheetInfo[m_nScriptType].GetSttCol()); int nSttRow = m_sheetInfo[m_nScriptType].GetSttRow(); //Range ¼³Á¤ m_range = m_sheet.get_Range(COleVariant(m_sheetInfo[m_nScriptType].GetSttCell()), COleVariant(m_sheetInfo[m_nScriptType].GetEndCell())); //µ¥ÀÌÅ͸¦ ¾ò´Â´Ù. COleSafeArray saData(m_range.get_Value(covOptional)); long nCntRow; long nCntCol; long nIndex[2]; BOOL bSuccess = FALSE; int nErrorCode = 0; //¿©±â¼­ ¾ò°Ô µÇ´Â row, col¼ö´Â ³»°¡ ¼±ÅÃÇÑ row¿Í col¼ö ÀÌ´Ù. saData.GetUBound(1, &nCntRow); saData.GetUBound(2, &nCntCol); m_nColCount = nCntCol; // ÇöÀç ¼±ÅÃµÈ Ä÷´ÀÇ °³¼ö ¼³Á¤ for(int nRow = 2; nRow <= nCntRow; nRow++) //¿©±â¼­ nRow´Â ¼±ÅÃÇÑ ÁöÁ¡ÀÌ ½ÃÀÛÁ¡ÀÌ´Ù. { CScript* pData; if( m_nScriptType == SCRIPT_SKILL ) pData = new CSkillInfo; else if( m_nScriptType == SCRIPT_STATE ) pData = new CStatusInfo; else if( m_nScriptType == SCRIPT_MONSTER ) pData = new CMonster; else if(m_nScriptType == SCRIPT_ITEM_WEAPON || m_nScriptType == SCRIPT_ITEM_ARMOR || m_nScriptType == SCRIPT_ITEM_ACCESSARY || m_nScriptType == SCRIPT_ITEM_WASTE ) pData = new CItem; for(int nCol = 1; nCol <= nCntCol; nCol++) //¿©±â¼­ nColÀº ¼±ÅÃÇÑ ÁöÁ¡ÀÌ ½ÃÀÛÁ¡ÀÌ´Ù. { nIndex[0] = nRow; nIndex[1] = nCol; COleVariant vData; saData.GetElement(nIndex, vData); bSuccess = SaveData(pData, nCol, vData, nErrorCode); //°¢ ½ºÅ©¸³Æ®º°·Î ÀúÀåµÊ if(bSuccess == FALSE) { CString strCell; strCell.Format("%s%d : %s \r\n", GetXLColNumFromInt(nCol + nSttCol - 1), nSttRow + nRow - 1, GetErrorDescription(nErrorCode)); m_strError += strCell; } } //Ä÷³ÀÇ °³¼ö¸¦ ÀúÀåÇÑ´Ù. pData->SetColumnCount( nCntCol ); m_vecData.push_back( pData ); } return TRUE; } //Çà, ¿­, µ¥ÀÌÅ͸¦ °¡Áö°í ÀúÀå. // nCol = ¼±ÅÃÇÑ ¿µ¿ªÀÇ ½ÃÀÛ ¿­ºÎÅÍÀÇ ¿­¹øÈ£ BOOL CExcelManager::SaveData(CScript* pData, int nCol,COleVariant value, int& nErrorCode) { BOOL bSuccess = pData->SaveData(nCol, value, nErrorCode); return bSuccess; } BOOL CExcelManager::SaveText(CString& strText) { int nSize = (int)m_vecData.size(); strText.Empty(); for(int i = 0; i < nSize; i++) { CScript* pInfo = m_vecData[i]; CString str = pInfo->GetContentsAll(); strText += str; } return TRUE; } void CExcelManager::DeleteAllItem(void) { int nSize = (int)m_vecData.size(); int nScriptType = GetScriptType(); for(int i = 0; i < nSize ; i++) { /* if(nScriptType == SCRIPT_SKILL ) { CSkillInfo* pData = (CSkillInfo*)m_vecData[i]; } else if(nScriptType == SCRIPT_STATE ) { CStatusInfo* pData = (CStatusInfo*)m_vecData[i]; } else if(nScriptType == SCRIPT_MONSTER ) { CMonster* pData = (CMonster*)m_vecData[i]; } else if(nScriptType == SCRIPT_ITEM_WEAPON || nScriptType == SCRIPT_ITEM_ARMOR || nScriptType == SCRIPT_ITEM_ACCESSARY || nScriptType == SCRIPT_ITEM_WASTE ) { CItem* pData = (CItem*)m_vecData[i]; }*/ CScript* pData = m_vecData[i]; if(pData) delete pData; } m_vecData.clear(); m_strError = ""; } int CExcelManager::GetScriptType(void) { return m_nScriptType; } int CExcelManager::GetRowCount() { return (int)m_vecData.size(); } int CExcelManager::GetColCount() { return m_nColCount; } void CExcelManager::SetSttCol(CString strSttCol) { m_sheetInfo[m_nScriptType].SetSttCol( strSttCol ); } void CExcelManager::SetEndCol(CString strEndCol) { m_sheetInfo[m_nScriptType].SetEndCol( strEndCol ); } void CExcelManager::SetSttRow(int nSttRow) { m_sheetInfo[m_nScriptType].SetSttRow( nSttRow ); } void CExcelManager::SetEndRow(int nEndRow) { m_sheetInfo[m_nScriptType].SetEndRow( nEndRow ); } CString CExcelManager::GetSttCol() { return m_sheetInfo[m_nScriptType].GetSttCol(); } CString CExcelManager::GetEndCol() { return m_sheetInfo[m_nScriptType].GetEndCol(); } int CExcelManager::GetSttRow() { return m_sheetInfo[m_nScriptType].GetSttRow(); } int CExcelManager::GetEndRow() { return m_sheetInfo[m_nScriptType].GetEndRow(); } int CExcelManager::GetSheetNo() { return m_sheetInfo[m_nScriptType].GetSheetNumber(); } //SheetInfo.ini ÆÄÀÏ·Î ºÎÅÍ Á¤º¸¸¦ ¾ò´Â´Ù. BOOL CExcelManager::LoadSheetInfo(void) { GetSkillSheetInfo(); GetStateSheetInfo(); GetMonsterSheetInfo(); GetWeaponSheetInfo(); GetArmorSheetInfo(); GetAccessarySheetInfo(); GetWasteSheetInfo(); return TRUE; } BOOL CExcelManager::GetSkillSheetInfo(void) { const int nSize = 10; char szFile[] = ".\\SheetInfo.ini"; char szData[nSize]; int nData = 0; // ½ºÅ³ m_sheetInfo[SCRIPT_SKILL].SetScriptType( SCRIPT_SKILL ); GetPrivateProfileString ("SKILL", "STTCOL", "A", szData, nSize, szFile); //½ÃÀÛ¿­ m_sheetInfo[SCRIPT_SKILL].SetSttCol( szData ); GetPrivateProfileString ("SKILL", "ENDCOL", "CQ", szData, nSize, szFile); //Á¾·á¿­ m_sheetInfo[SCRIPT_SKILL].SetEndCol( szData ); nData = GetPrivateProfileInt("SKILL", "STTROW", 8, szFile); //½ÃÀÛÇà m_sheetInfo[SCRIPT_SKILL].SetSttRow( nData ); nData = GetPrivateProfileInt("SKILL", "ENDROW", 884, szFile); //Á¾·áÇà m_sheetInfo[SCRIPT_SKILL].SetEndRow( nData ); nData = GetPrivateProfileInt("SKILL", "SHEETNO", 1, szFile); //½ÃÆ®¹øÈ£ m_sheetInfo[SCRIPT_SKILL].SetSheetNumber( nData ); return TRUE; } BOOL CExcelManager::GetStateSheetInfo(void) { const int nSize = 10; char szFile[] = ".\\SheetInfo.ini"; char szData[nSize]; int nData = 0; // ½ºÅ³ m_sheetInfo[SCRIPT_STATE].SetScriptType( SCRIPT_STATE ); GetPrivateProfileString ("STATE", "STTCOL", "A", szData, nSize, szFile); //½ÃÀÛ¿­ m_sheetInfo[SCRIPT_STATE].SetSttCol( szData ); GetPrivateProfileString ("STATE", "ENDCOL", "G", szData, nSize, szFile); //Á¾·á¿­ m_sheetInfo[SCRIPT_STATE].SetEndCol( szData ); nData = GetPrivateProfileInt("STATE", "STTROW", 5, szFile); //½ÃÀÛÇà m_sheetInfo[SCRIPT_STATE].SetSttRow( nData ); nData = GetPrivateProfileInt("STATE", "ENDROW", 71, szFile); //Á¾·áÇà m_sheetInfo[SCRIPT_STATE].SetEndRow( nData ); nData = GetPrivateProfileInt ("STATE", "SHEETNO", 1, szFile); //½ÃÆ®¹øÈ£ m_sheetInfo[SCRIPT_STATE].SetSheetNumber( nData ); return TRUE; } BOOL CExcelManager::GetMonsterSheetInfo(void) { const int nSize = 10; char szFile[] = ".\\SheetInfo.ini"; char szData[nSize]; int nData = 0; // ½ºÅ³ m_sheetInfo[SCRIPT_MONSTER].SetScriptType( SCRIPT_MONSTER ); GetPrivateProfileString ("MONSTER", "STTCOL", "A", szData, nSize, szFile); //½ÃÀÛ¿­ m_sheetInfo[SCRIPT_MONSTER].SetSttCol( szData ); GetPrivateProfileString ("MONSTER", "ENDCOL", "CZ", szData, nSize, szFile); //Á¾·á¿­ m_sheetInfo[SCRIPT_MONSTER].SetEndCol( szData ); nData = GetPrivateProfileInt("MONSTER", "STTROW", 11, szFile); //½ÃÀÛÇà m_sheetInfo[SCRIPT_MONSTER].SetSttRow( nData ); nData = GetPrivateProfileInt("MONSTER", "ENDROW", 577, szFile); //Á¾·áÇà m_sheetInfo[SCRIPT_MONSTER].SetEndRow( nData ); nData = GetPrivateProfileInt ("MONSTER", "SHEETNO", 2, szFile); //½ÃÆ®¹øÈ£ m_sheetInfo[SCRIPT_MONSTER].SetSheetNumber( nData ); return TRUE; } //¹«±â BOOL CExcelManager::GetWeaponSheetInfo(void) { const int nSize = 10; char szFile[] = ".\\SheetInfo.ini"; char szData[nSize]; int nData = 0; // ½ºÅ³ m_sheetInfo[SCRIPT_ITEM_WEAPON].SetScriptType( SCRIPT_ITEM_WEAPON ); GetPrivateProfileString ("WEAPON", "STTCOL", "B", szData, nSize, szFile); //½ÃÀÛ¿­ m_sheetInfo[SCRIPT_ITEM_WEAPON].SetSttCol( szData ); GetPrivateProfileString ("WEAPON", "ENDCOL", "BA", szData, nSize, szFile); //Á¾·á¿­ m_sheetInfo[SCRIPT_ITEM_WEAPON].SetEndCol( szData ); nData = GetPrivateProfileInt("WEAPON", "STTROW", 7, szFile); //½ÃÀÛÇà m_sheetInfo[SCRIPT_ITEM_WEAPON].SetSttRow( nData ); nData = GetPrivateProfileInt("WEAPON", "ENDROW", 157, szFile); //Á¾·áÇà m_sheetInfo[SCRIPT_ITEM_WEAPON].SetEndRow( nData ); nData = GetPrivateProfileInt ("WEAPON", "SHEETNO", 2, szFile); //½ÃÆ®¹øÈ£ m_sheetInfo[SCRIPT_ITEM_WEAPON].SetSheetNumber( nData ); return TRUE; } //¹æ¾î±¸ BOOL CExcelManager::GetArmorSheetInfo(void) { const int nSize = 10; char szFile[] = ".\\SheetInfo.ini"; char szData[nSize]; int nData = 0; // ½ºÅ³ m_sheetInfo[SCRIPT_ITEM_ARMOR].SetScriptType( SCRIPT_ITEM_ARMOR ); GetPrivateProfileString ("ARMOR", "STTCOL", "B", szData, nSize, szFile); //½ÃÀÛ¿­ m_sheetInfo[SCRIPT_ITEM_ARMOR].SetSttCol( szData ); GetPrivateProfileString ("ARMOR", "ENDCOL", "BA", szData, nSize, szFile); //Á¾·á¿­ m_sheetInfo[SCRIPT_ITEM_ARMOR].SetEndCol( szData ); nData = GetPrivateProfileInt("ARMOR", "STTROW", 7, szFile); //½ÃÀÛÇà m_sheetInfo[SCRIPT_ITEM_ARMOR].SetSttRow( nData ); nData = GetPrivateProfileInt("ARMOR", "ENDROW", 407, szFile); //Á¾·áÇà m_sheetInfo[SCRIPT_ITEM_ARMOR].SetEndRow( nData ); nData = GetPrivateProfileInt ("ARMOR", "SHEETNO", 3, szFile); //½ÃÆ®¹øÈ£ m_sheetInfo[SCRIPT_ITEM_ARMOR].SetSheetNumber( nData ); return TRUE; } //¾Ç¼¼¼­¸® BOOL CExcelManager::GetAccessarySheetInfo(void) { const int nSize = 10; char szFile[] = ".\\SheetInfo.ini"; char szData[nSize]; int nData = 0; // ½ºÅ³ m_sheetInfo[SCRIPT_ITEM_ACCESSARY].SetScriptType( SCRIPT_ITEM_ACCESSARY ); GetPrivateProfileString ("ACCESSARY", "STTCOL", "B", szData, nSize, szFile); //½ÃÀÛ¿­ m_sheetInfo[SCRIPT_ITEM_ACCESSARY].SetSttCol( szData ); GetPrivateProfileString ("ACCESSARY", "ENDCOL", "BA", szData, nSize, szFile); //Á¾·á¿­ m_sheetInfo[SCRIPT_ITEM_ACCESSARY].SetEndCol( szData ); nData = GetPrivateProfileInt("ACCESSARY", "STTROW", 2, szFile); //½ÃÀÛÇà m_sheetInfo[SCRIPT_ITEM_ACCESSARY].SetSttRow( nData ); nData = GetPrivateProfileInt("ACCESSARY", "ENDROW", 27, szFile); //Á¾·áÇà m_sheetInfo[SCRIPT_ITEM_ACCESSARY].SetEndRow( nData ); nData = GetPrivateProfileInt ("ACCESSARY", "SHEETNO", 4, szFile); //½ÃÆ®¹øÈ£ m_sheetInfo[SCRIPT_ITEM_ACCESSARY].SetSheetNumber( nData ); return TRUE; } //¼Ò¸ð¾ÆÀÌÅÛ BOOL CExcelManager::GetWasteSheetInfo(void) { const int nSize = 10; char szFile[] = ".\\SheetInfo.ini"; char szData[nSize]; int nData = 0; // ½ºÅ³ m_sheetInfo[SCRIPT_ITEM_WASTE].SetScriptType( SCRIPT_ITEM_WASTE ); GetPrivateProfileString ("ACCESSARY", "STTCOL", "B", szData, nSize, szFile); //½ÃÀÛ¿­ m_sheetInfo[SCRIPT_ITEM_WASTE].SetSttCol( szData ); GetPrivateProfileString ("ACCESSARY", "ENDCOL", "BA", szData, nSize, szFile); //Á¾·á¿­ m_sheetInfo[SCRIPT_ITEM_WASTE].SetEndCol( szData ); nData = GetPrivateProfileInt("ACCESSARY", "STTROW", 7, szFile); //½ÃÀÛÇà m_sheetInfo[SCRIPT_ITEM_WASTE].SetSttRow( nData ); nData = GetPrivateProfileInt("ACCESSARY", "ENDROW", 44, szFile); //Á¾·áÇà m_sheetInfo[SCRIPT_ITEM_WASTE].SetEndRow( nData ); nData = GetPrivateProfileInt ("ACCESSARY", "SHEETNO", 5, szFile); //½ÃÆ®¹øÈ£ m_sheetInfo[SCRIPT_ITEM_WASTE].SetSheetNumber( nData ); return TRUE; } ////////////////////////////////////////////////////////////////////////// BOOL CExcelManager::SaveSheetInfo( int nType, CString strSttCol, CString strEndCol, int nSttRow, int nEndRow, int nSheetNo ) { if( nType == SCRIPT_SKILL ) SetSkillSheetInfo( strSttCol, strEndCol, nSttRow, nEndRow, nSheetNo ); else if( nType == SCRIPT_STATE ) SetStateSheetInfo( strSttCol, strEndCol, nSttRow, nEndRow, nSheetNo ); else if( nType == SCRIPT_MONSTER ) SetMonsterSheetInfo( strSttCol, strEndCol, nSttRow, nEndRow, nSheetNo ); else if( nType == SCRIPT_ITEM_WEAPON ) SetWeaponSheetInfo( strSttCol, strEndCol, nSttRow, nEndRow, nSheetNo ); else if( nType == SCRIPT_ITEM_ARMOR ) SetArmorSheetInfo( strSttCol, strEndCol, nSttRow, nEndRow, nSheetNo ); else if( nType == SCRIPT_ITEM_ACCESSARY ) SetAccessarySheetInfo( strSttCol, strEndCol, nSttRow, nEndRow, nSheetNo ); else if( nType == SCRIPT_ITEM_WASTE ) SetWasteSheetInfo( strSttCol, strEndCol, nSttRow, nEndRow, nSheetNo ); else return FALSE; return TRUE; } BOOL CExcelManager::SetSkillSheetInfo( CString strSttCol, CString strEndCol, int nSttRow, int nEndRow, int nSheetNo ) { char szFile[] = ".\\SheetInfo.ini"; CString strData; // ½ºÅ³ WritePrivateProfileString( "SKILL", "STTCOL", strSttCol, szFile ); //½ÃÀÛ¿­ WritePrivateProfileString( "SKILL", "ENDCOL", strEndCol, szFile ); //Á¾·á¿­ strData.Format("%d", nSttRow); WritePrivateProfileString( "SKILL", "STTROW", strData, szFile); //½ÃÀÛÇà strData.Format("%d", nEndRow); WritePrivateProfileString( "SKILL", "ENDROW", strData, szFile ); //Á¾·áÇà strData.Format("%d", nSheetNo); WritePrivateProfileString( "SKILL", "SHEETNO", strData, szFile ); //½ÃÆ®¹øÈ£ return TRUE; } BOOL CExcelManager::SetStateSheetInfo( CString strSttCol, CString strEndCol, int nSttRow, int nEndRow, int nSheetNo ) { char szFile[] = ".\\SheetInfo.ini"; CString strData; // ½ºÅ³ WritePrivateProfileString( "STATE", "STTCOL", strSttCol, szFile ); //½ÃÀÛ¿­ WritePrivateProfileString( "STATE", "ENDCOL", strEndCol, szFile ); //Á¾·á¿­ strData.Format("%d", nSttRow); WritePrivateProfileString( "STATE", "STTROW", strData, szFile); //½ÃÀÛÇà strData.Format("%d", nEndRow); WritePrivateProfileString( "STATE", "ENDROW", strData, szFile ); //Á¾·áÇà strData.Format("%d", nSheetNo); WritePrivateProfileString( "STATE", "SHEETNO", strData, szFile ); //½ÃÆ®¹øÈ£ return TRUE; } BOOL CExcelManager::SetMonsterSheetInfo( CString strSttCol, CString strEndCol, int nSttRow, int nEndRow, int nSheetNo ) { char szFile[] = ".\\SheetInfo.ini"; CString strData; // ½ºÅ³ WritePrivateProfileString( "MONSTER", "STTCOL", strSttCol, szFile ); //½ÃÀÛ¿­ WritePrivateProfileString( "MONSTER", "ENDCOL", strEndCol, szFile ); //Á¾·á¿­ strData.Format("%d", nSttRow); WritePrivateProfileString( "MONSTER", "STTROW", strData, szFile); //½ÃÀÛÇà strData.Format("%d", nEndRow); WritePrivateProfileString( "MONSTER", "ENDROW", strData, szFile ); //Á¾·áÇà strData.Format("%d", nSheetNo); WritePrivateProfileString( "MONSTER", "SHEETNO", strData, szFile ); //½ÃÆ®¹øÈ£ return TRUE; } //¹«±â BOOL CExcelManager::SetWeaponSheetInfo( CString strSttCol, CString strEndCol, int nSttRow, int nEndRow, int nSheetNo ) { char szFile[] = ".\\SheetInfo.ini"; CString strData; // ½ºÅ³ WritePrivateProfileString( "WEAPON", "STTCOL", strSttCol, szFile ); //½ÃÀÛ¿­ WritePrivateProfileString( "WEAPON", "ENDCOL", strEndCol, szFile ); //Á¾·á¿­ strData.Format("%d", nSttRow); WritePrivateProfileString( "WEAPON", "STTROW", strData, szFile); //½ÃÀÛÇà strData.Format("%d", nEndRow); WritePrivateProfileString( "WEAPON", "ENDROW", strData, szFile ); //Á¾·áÇà strData.Format("%d", nSheetNo); WritePrivateProfileString( "WEAPON", "SHEETNO", strData, szFile ); //½ÃÆ®¹øÈ£ return TRUE; } //¹æ¾î±¸ BOOL CExcelManager::SetArmorSheetInfo( CString strSttCol, CString strEndCol, int nSttRow, int nEndRow, int nSheetNo ) { char szFile[] = ".\\SheetInfo.ini"; CString strData; // ½ºÅ³ WritePrivateProfileString( "ARMOR", "STTCOL", strSttCol, szFile ); //½ÃÀÛ¿­ WritePrivateProfileString( "ARMOR", "ENDCOL", strEndCol, szFile ); //Á¾·á¿­ strData.Format("%d", nSttRow); WritePrivateProfileString( "ARMOR", "STTROW", strData, szFile); //½ÃÀÛÇà strData.Format("%d", nEndRow); WritePrivateProfileString( "ARMOR", "ENDROW", strData, szFile ); //Á¾·áÇà strData.Format("%d", nSheetNo); WritePrivateProfileString( "ARMOR", "SHEETNO", strData, szFile ); //½ÃÆ®¹øÈ£ return TRUE; } //¾Ç¼¼¼­¸® BOOL CExcelManager::SetAccessarySheetInfo( CString strSttCol, CString strEndCol, int nSttRow, int nEndRow, int nSheetNo ) { char szFile[] = ".\\SheetInfo.ini"; CString strData; // ½ºÅ³ WritePrivateProfileString( "ACCESSARY", "STTCOL", strSttCol, szFile ); //½ÃÀÛ¿­ WritePrivateProfileString( "ACCESSARY", "ENDCOL", strEndCol, szFile ); //Á¾·á¿­ strData.Format("%d", nSttRow); WritePrivateProfileString( "ACCESSARY", "STTROW", strData, szFile); //½ÃÀÛÇà strData.Format("%d", nEndRow); WritePrivateProfileString( "ACCESSARY", "ENDROW", strData, szFile ); //Á¾·áÇà strData.Format("%d", nSheetNo); WritePrivateProfileString( "ACCESSARY", "SHEETNO", strData, szFile ); //½ÃÆ®¹øÈ£ return TRUE; } //¼Ò¸ð¾ÆÀÌÅÛ BOOL CExcelManager::SetWasteSheetInfo( CString strSttCol, CString strEndCol, int nSttRow, int nEndRow, int nSheetNo ) { char szFile[] = ".\\SheetInfo.ini"; CString strData; // ½ºÅ³ WritePrivateProfileString( "WASTE", "STTCOL", strSttCol, szFile ); //½ÃÀÛ¿­ WritePrivateProfileString( "WASTE", "ENDCOL", strEndCol, szFile ); //Á¾·á¿­ strData.Format("%d", nSttRow); WritePrivateProfileString( "WASTE", "STTROW", strData, szFile); //½ÃÀÛÇà strData.Format("%d", nEndRow); WritePrivateProfileString( "WASTE", "ENDROW", strData, szFile ); //Á¾·áÇà strData.Format("%d", nSheetNo); WritePrivateProfileString( "WASTE", "SHEETNO", strData, szFile ); //½ÃÆ®¹øÈ£ return TRUE; }