Browse Source

1、修正GetNextSelectItem item = 0时修改不了的问题;
2、保存时,应该使用\n而不是\r,否则ReadString把全部内容会按一行读取

Jeff 5 years ago
parent
commit
f4add9462f

+ 13 - 0
ModuleSVNManager2/ModuleSVNManager/DataImpl.cpp

@@ -1,6 +1,13 @@
 #include "StdAfx.h"
 #include "DataImpl.h"
 
+#define DBCREATE _T("CREATE TABLE \"mod\" (\
+\"mod_name\"  TEXT NOT NULL,\
+\"mod_addr\"  TEXT NOT NULL,\
+\"mod_ver\"  TEXT NOT NULL,\
+PRIMARY KEY (\"mod_name\")\
+);")
+
 CDataImpl::CDataImpl(void):m_psqlite3(NULL),m_pszErrmsg(NULL)
 {
 }
@@ -14,6 +21,9 @@ BOOL CDataImpl::Open()
 	Close();
 	CHAR szpath[MAX_PATH] = {0};
 	_stprintf_s(szpath, _T("%ssvn.db"), Global::g_szModulePath );
+	bool bCreate = false;
+	if ( !PathFileExists(szpath) )
+		bCreate = true;
 
 	string strPath;
 	if ( !CharEncoding::ASCII2UTF8(szpath,strPath))
@@ -25,6 +35,9 @@ BOOL CDataImpl::Open()
 	if ( nResult != SQLITE_OK )
 		return FALSE;
 
+	if ( bCreate )
+		ExecteSQL(DBCREATE);
+
 	return TRUE;
 }
 

+ 1 - 0
ModuleSVNManager2/ModuleSVNManager/Global.cpp

@@ -77,6 +77,7 @@ namespace Global
 		if (ERROR_FILE_NOT_FOUND == GetLastError())
 		{
 			_stprintf_s(g_ModConfig.szModSavePath, _T("%smodules_svn.cfg"), g_szModulePath);
+			WritePrivateProfileString(_T("Mod"), _T("DIR"), g_ModConfig.szModSavePath, szIniPath);
 			return -1;
 		}
 		CloseHandle(hFile);

+ 8 - 2
ModuleSVNManager2/ModuleSVNManager/ModuleSVNManagerDlg.cpp

@@ -310,7 +310,7 @@ void CModuleSVNManagerDlg::OnBnClickedOperation()
 		POSITION pos = m_list_modDB.GetFirstSelectedItemPosition();
 		if ( pos ) {
 			int nSelIndex = m_list_modDB.GetNextSelectedItem(pos);
-			if ( nSelIndex ) {
+			if ( nSelIndex != -1) {
 				STModInfo *pModInfo = (STModInfo*)m_list_modDB.GetItemData(nSelIndex);
 				if ( pModInfo ) {
 					// 修改值;
@@ -422,14 +422,20 @@ void CModuleSVNManagerDlg::OnBnClickedOk()
 		for ( std::vector<STModInfo*>::iterator it = m_vtDbModInfo.begin(); it != m_vtDbModInfo.end(); it++ ) {
 			STModInfo *p = *it;
 			if ( p->_check ) {
-				str.Format(_T("[MOUDLE],%s,%s,%s\r"), p->strName.c_str(), p->strAddress.c_str(), p->strVersion.c_str());
+				str.Format(_T("[MOUDLE],%s,%s,%s\n"), p->strName.c_str(), p->strAddress.c_str(), p->strVersion.c_str());
 				sfile.WriteString(str);	
 			}
 		}
 
 		sfile.Flush();	// 强制缓冲写入;
 		sfile.Close();
+
+		MessageBox(_T("保存成功"), _T("提示"), MB_OK);
 	}	
+	else
+	{
+		MessageBox(_T("保存失败,创建文件失败!"), _T("提示"), MB_OK);
+	}
 }
 
 void CModuleSVNManagerDlg::OnBnClickedCancel()