⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.cpp

📁 自动从数据库按类导出文本
💻 CPP
字号:
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename ("EOF", "adoEOF")
 
#include <algorithm>
#include <iterator>
#include <vector>
#include <string>
#include <cassert>
#include <iostream>
#include <utility>
#include <map>
#include <fstream>
#include <conio.h>
#include <ctime>
#include <comdef.h>
using namespace std;

_ConnectionPtr m_pConnection;

//指向文本表的数据集
_RecordsetPtr m_pRecordset;

bool Initialize_connect()
{	
	 CoInitialize(NULL);
	 m_pConnection.CreateInstance(__uuidof(Connection));
	 try                
     {    
		m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=朝鲜大事记库BB.mdb","","",adModeUnknown);    
		m_pRecordset.CreateInstance("ADODB.Recordset");	
		m_pRecordset->Open("SELECT * FROM TextTable",_variant_t((IDispatch*)m_pConnection,true),adOpenDynamic,adLockOptimistic,adCmdText);
		if(!m_pRecordset->BOF) 	m_pRecordset->MoveFirst(); 
	 }
     catch(_com_error e)
     {
        cout<<"数据库连接失败,确认数据库是否在当前路径下!"<<endl;
        return FALSE;
     }
	 return true;
}

void WriteText()
{	

	if(!m_pRecordset->BOF) m_pRecordset->MoveFirst(); 
	while(!m_pRecordset->adoEOF) 
	{
		string line;//写入文本特征文本的行字符串
		if(m_pRecordset->GetCollect("事件内容").vt != VT_NULL)
		{
			vector <string> WordID;
				
			//获取文本类别
			char *TextID= _com_util::ConvertBSTRToString((_bstr_t)m_pRecordset->GetCollect("TextNumber"));  
			char *Text= _com_util::ConvertBSTRToString((_bstr_t)m_pRecordset->GetCollect("事件内容"));  
			char *Character=_com_util::ConvertBSTRToString((_bstr_t)m_pRecordset->GetCollect("Character")); 
			
			cout<<endl<<"当前文本号:"<<TextID<<endl;

			string textnumber(TextID);
			string text(Text);
			string   fileName;
			switch(*Character)
			{
				case 'A':fileName="F:\\Data\\美国\\";break;
				case 'D':fileName="F:\\Data\\东突\\";break;
				case 'F':fileName="F:\\Data\\法轮功\\";break;
				case 'J':fileName="F:\\Data\\经济\\";break;	
				case 'M':fileName="F:\\Data\\民主派\\";break;
				case 'N':fileName="F:\\Data\\其它\\";break;
				case 'O':fileName="F:\\Data\\奥运会\\";break;
				case 'Q':fileName="F:\\Data\\群体事件\\";break;	
				case 'R':fileName="F:\\Data\\人权\\";break;
				case 'S':fileName="F:\\Data\\四川汶川地震\\";break;
				case 'T':fileName="F:\\Data\\台湾\\";break;
				case 'W':fileName="F:\\Data\\外国\\";break;	
				case 'Z':fileName="F:\\Data\\藏独\\";break;	
			}
			
			fileName+=textnumber;   
			fileName+=".txt";   

			ofstream out(fileName.c_str());

			line+=text+"  ";
			
			delete (TextID);
			delete (Text);
			delete (Character);
			out<<line<<"\n";
		}
		m_pRecordset->MoveNext();  
	}
	m_pRecordset->Close();
    m_pRecordset = NULL;  

}

void close_connect()
{
    if(m_pConnection->State)
    m_pConnection->Close();
    m_pConnection= NULL;
}


int main()
{
	Initialize_connect();
	
	WriteText();

	close_connect();


	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -