类型:转载 责任编辑:asp.net 日期:2007/05/23
热门软件下载:
将图像分割后,生成了若干区域,这些区域有面积,周长,区域灰度最大值,最小值,平均值等各项指标,考虑将他们统计到一个事实数据库中,现在区域的范围、块数已定,我放在一个文本文件里,也就是说知道会有多少条记录(一个区域对应一条记录),但是其属性指标有待扩充,如何将此文本文件导出建立数据库?这个数据库应该方便我统计新的区域属性指标。用那种方式建立比较方便呢?
假定文本文件格式为:
区域编号 区域面积 灰度特性 区域范围
1 300 ??? {...}
2 230 ??? {...}
其中灰度特性要根据区域范围确定。
望各位大虾热心指点,在此谢过。
本人未做过数据库方面的工作,看来非加强学习不可了。
网友回答:
用CStdioFile的ReadString读文件一行,然后解析字符串,写入数据库
用单个空格或逗号作分隔符比较好,这样较容易倒入数据库
区域编号 区域面积 灰度特性 区域范围
1 300 ??? {...}
2 230 ???{...}
CStdioFile::ReadString+sscanf.
用ODBC和ADO都可以,比如用ODBC
1、建立数据库连接,程序中建立CRecordSet类。
2、依次读文件,楼上的几个办法都可行。
3、根据读出的数据,循环向数据库中插入数据。
同意楼上。
用ADO+ACCESS方便点。
假设你写文件的时候是
CString str;
str.Format("%s\t%s\t%s\%s",data1,data2,data3,data4),数据间用\t隔开
用CStdioFile得WriteString(str)
然后读入到数据库
用CStdioFile得ReadString(str)
然后
sscanf(str,"%s\t%s\t%s\t%s",data1,data2,data3,data4)获得各个自段值
然后入库
1.stdafx.h中加入
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
2。app文件的InitInstance中加入
if(S_OK!=OleInitialize(NULL))
{
AfxMessageBox("初始化COM组件库错误");
}
下面就是数据库操作
_ConnectionPtr pConn;
_RecordsetPtr pRs;
CString strSQL;
pConn.CreateInstance(__uuidof(Connection));
pConn->CursorLocation=adUseClient;
strSQL="Provider=SQLOLEDB;Server=Gooyan;DataBase=SkillsBox;UID=sa;PWD=aaaaaaaa";
pConn->Open(_bstr_t(strSQL),"","",-1);
pRs.CreateInstance(__uuidof(Recordset));
pRs->CursorLocation=adUseClient;
pRs->PutActiveConnection(pConn.GetInterfacePtr());
pRs1.CreateInstance(__uuidof(Recordset));
pRs1->CursorLocation=adUseClient;
pRs1->PutActiveConnection(pConn.GetInterfacePtr());
strSQL="select * from catalog order by cataid";
pRs->Open(_bstr_t(strSQL),vtMissing,adOpenDynamic,adLockBatchOptimistic,adCmdText);
我的思路:写成ini文件,可以外部设置也可以。
ADO建ACCESS数据库
http://blog.csdn.net/laiyiling/archive/2004/10/23/148112.aspx