📄 mainform.cs
字号:
string[] anArray = new string[values.Count];
for ( int i = 0; i < values.Count; i ++ )
anArray[i] = values[i].ToString();
return anArray;
}
/// <summary>
/// ListView甫 Initialize茄促.
/// </summary>
/// <param name="bSet"></param>
/// <param name="LView"></param>
public void InitListView( bool bSet, ListView LView){
if ( bSet == true ){
LView.Clear();
LView.FullRowSelect = true;
LView.GridLines = true;
LView.TabIndex = 0;
LView.View = System.Windows.Forms.View.Details;
}
else{
LView.Clear();
LView.FullRowSelect = false;
LView.GridLines = false;
LView.TabIndex = 0;
LView.View = System.Windows.Forms.View.Details;
}
}
/// <summary>
/// 拌魂窍扁 !!!
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public bool LoadData(Excel.Worksheet worksheet, string fileName, ProgressBar progressbar,out ClusterLibrary.Data mData) {
// 肺漠 函荐
int i = 2;
int nPointDim = 1;
int nSets = (int) this.numericUpDownSetNumber.Value ;
// 霉 扼牢阑 佬绰促. 捞锭 null 捞 唱坷搁 拌魂 窍瘤 臼绊 场辰促.
Excel.Range range = worksheet.get_Range("A"+i.ToString(), "IV" + i.ToString());
System.Array myvalues = (System.Array)range.Cells.Value;
if ( myvalues.GetValue(1,1) == null ){
mData = null;
return false;
}
progressbar.PerformStep();
// Data甫 积己
mData = new ClusterLibrary.Data ( nSets );
progressbar.PerformStep();
// Point甫 唱鸥郴绰 Dimension狼 肮荐甫 历厘
for ( ; myvalues.GetValue(1,nPointDim) != null ; nPointDim ++ );
// Dimension狼 肮荐焊促 nSets啊 歹 目档 拌魂 窍瘤 臼绊 场辰促.
// TODO: 辟荤茄 俊矾 皋技瘤甫 焊郴芭唱 拌魂 倾侩 何盒俊辑 捞 何盒篮 鞘磐傅 且 荐 乐霸 秦具等促.
if ( nSets + 1 >= nPointDim ) return false;
// data甫 烙矫肺 历厘且 array 函荐 急攫
int[] temp_set_info = new int[nSets];
double[] temp_point_info = new double[nPointDim - nSets - 2];
progressbar.PerformStep();
// Data甫 皋葛府俊 棵赴促.
while (true) {
// Cluster Info甸阑 免仿茄促.
try{
for ( int j = 2; j < 2 + nSets ; j ++ ){
temp_set_info[j - 2] = (System.Int32.Parse(myvalues.GetValue(1,j).ToString()) );
}
// Point狼 Dimension Info甸阑 免仿茄促.
for ( int j = 2 + nSets; j < nPointDim ; j ++ ){
temp_point_info[j - 2 - nSets] = ( System.Double.Parse(myvalues.GetValue(1,j).ToString()) );
}
}
catch( System.Exception e ){
Console.WriteLine( e.StackTrace );
Console.WriteLine( e.ToString() );
MessageBox.Show( "Set 肮荐甫 沥犬洒 汲沥秦 林绞矫夸. Set 肮荐啊 嘎瘤 臼嚼聪促." );
mData.ClearAll();
mData = null;
System.GC.Collect();
return false;
}
i++;
mData.AddPoint( temp_set_info, temp_point_info );
range = worksheet.get_Range("A"+i.ToString(), "IV" + i.ToString());
myvalues = (System.Array)range.Cells.Value;
if ( myvalues.GetValue(1,1) == null ){
break;
}
}
return true;
}
public ArrayList CalculateGDI ( ClusterLibrary.Data TotalData, ProgressBar ValidateProgressBar ){
ArrayList GDIResults;
ArrayList GDIResultsSet = new ArrayList();
ClusterLibrary.Set aSet;
ValidateProgressBar.Step = 100 / TotalData.Count();
for ( int i = 0; i < TotalData.Count(); i ++ ){
ValidateProgressBar.PerformStep();
aSet = TotalData[i];
GDIResults = ClusterLibrary.GDICore.ValidityIndex( aSet );
GDIResultsSet.Add ( GDIResults );
}
return GDIResultsSet;
}
public ArrayList CalculateDBI ( ClusterLibrary.Data TotalData, ProgressBar ValidateProgressBar ){
int q;
int t;
double result = 0.0;
ArrayList DBIResultsSet = new ArrayList();
ArrayList DBIResults;
string aTreeNodeString;
ClusterLibrary.Set aSet;
foreach ( TreeNode aTreeNode in this.treeViewDBI.Nodes ){
DBIResults = new ArrayList();
aTreeNodeString = aTreeNode.Text;
DBIResults.Add( aTreeNodeString );
string[] qAndt = aTreeNodeString.Split(',');
q = System.Convert.ToInt32 ( qAndt[0] );
t = System.Convert.ToInt32 ( qAndt[1] );
for ( int j = 0; j < TotalData.Count(); j ++ ) {
aSet = (ClusterLibrary.Set)TotalData[j];
result = ClusterLibrary.DBICore.calculateDBI( aSet, q, t );
DBIResults.Add( result );
}
DBIResultsSet.Add( DBIResults );
}
return DBIResultsSet;
}
/// <summary>
/// SDI 蔼阑 拌魂窍绰 窃荐
/// </summary>
/// <param name="TotalData"></param>
/// <param name="ValidateProgressBar"></param>
/// <returns></returns>
public ArrayList CalculateSDI ( ClusterLibrary.Data TotalData, ProgressBar ValidateProgressBar ){
// Set狼 肮荐
int nSets = (int)this.numericUpDownSetNumber.Value;
// SDI 搬苞啊 历厘瞪 ArrayList
ArrayList SDIResults = new ArrayList();
// SDI 拌魂 葛碘捞 甸绢乐绰 Class
ClusterLibrary.SDICore SDI = new ClusterLibrary.SDICore();
double SDIResult = 0.0;
ValidateProgressBar.PerformStep();
// 努矾胶磐 荐啊 啊厘 农霸 唱床柳 Set阑 措涝茄促
SDI.SetA( TotalData[nSets - 1] );
ValidateProgressBar.PerformStep();
// 阿 Set甸狼 SDI甫 拌魂茄促
for ( int j = 0; j < nSets; j ++ ){
SDIResult = SDI.SDI( TotalData[j]);
SDIResults.Add( SDIResult );
}
// 搬苞甫 府畔茄促
return SDIResults;
}
public void DIsplayGDIResults ( ArrayList GDIResultsSet, ProgressBar ValidateProgressBar ){
ValidateProgressBar.PerformStep();
int nSets = (int)this.numericUpDownSetNumber.Value;
this.listViewGDIResult.Columns.Add( " (inter, intra ) ", 100, System.Windows.Forms.HorizontalAlignment.Center );
ValidateProgressBar.PerformStep();
for ( int i = 1; i <= nSets ; i ++ ){
ColumnHeader headColumn = (ColumnHeader)this.listViewRawData.Columns[i].Clone();
this.listViewGDIResult.Columns.Add( headColumn );
}
ValidateProgressBar.PerformStep();
for ( int i = 0; i < 18; i ++ ){
string[] strArray = new string[nSets + 1];
strArray[0] = String.Format("( {0}, {1} )", (i%6) + 1 , (i/6) + 1 );
for ( int j = 0; j < nSets; j ++ ){
strArray[j+1] = ((ArrayList)GDIResultsSet[j])[i].ToString();
}
this.listViewGDIResult.Items.Add( new ListViewItem( strArray ) );
}
ValidateProgressBar.PerformStep();
}
public void DIsplayDBIResults ( ArrayList DBIResultsSet, ProgressBar ValidateProgressBar ){
ValidateProgressBar.PerformStep();
int nSets = (int)this.numericUpDownSetNumber.Value;
// Column狼 肮荐甫 沥窃 ( 霉锅掳 临 ), Column Header甫 厘侥
ValidateProgressBar.PerformStep();
this.listViewDBIResult.Columns.Add( " Q and T ", 100, System.Windows.Forms.HorizontalAlignment.Center );
ValidateProgressBar.PerformStep();
for ( int i = 1; i <= nSets ; i ++ ){
ColumnHeader headColumn = (ColumnHeader)this.listViewRawData.Columns[i].Clone();
this.listViewDBIResult.Columns.Add( headColumn );
}
ValidateProgressBar.PerformStep();
foreach ( ArrayList DBIResults in DBIResultsSet ){
string[] strArray = this.ConvertToStringArray( DBIResults );
this.listViewDBIResult.Items.Add( new ListViewItem( strArray ) );
}
ValidateProgressBar.PerformStep();
}
public void DIsplaySDIResults ( ArrayList SDIResults, ProgressBar ValidateProgressBar ){
ValidateProgressBar.PerformStep();
int nSets = (int)this.numericUpDownSetNumber.Value;
for ( int i = 1; i <= nSets ; i ++ ){
ColumnHeader headColumn = (ColumnHeader)this.listViewRawData.Columns[i].Clone();
this.listViewSDIResult.Columns.Add( headColumn );
}
string[] strArray = this.ConvertToStringArray( SDIResults );
this.listViewSDIResult.Items.Add( new ListViewItem( strArray ) );
}
public void ClearResultListView ( ProgressBar ValidateProgressBar ){
// 搬苞甫 钎矫窍绰 list viwe甫 檬扁拳 茄促
ValidateProgressBar.Step = 30;
this.InitListView( true, this.listViewDBIResult );
ValidateProgressBar.PerformStep();
this.InitListView( true, this.listViewGDIResult );
ValidateProgressBar.PerformStep();
this.InitListView( true, this.listViewSDIResult );
ValidateProgressBar.PerformStep();
ValidateProgressBar.Step = 3;
}
private void buttonSave_Click(object sender, System.EventArgs e) {
SaveForm aSaveForm = new SaveForm(
this,
this.textBoxOpenFile.Text.TrimEnd('.','x','l','s'),
this.checkBoxGDI.Checked,
this.checkBoxDBI.Checked,
this.checkBoxSDI.Checked );
aSaveForm.ShowDialog();
}
public void SaveFiles( string GDISaveFileName, string DBISaveFileName, string SDISaveFileName, ProgressBar progressbar ){
if ( this.checkBoxGDI.Checked == true )
this.SaveResultSheet( this.listViewGDIResult, GDISaveFileName, progressbar );
if ( this.checkBoxDBI.Checked == true )
this.SaveResultSheet( this.listViewDBIResult, DBISaveFileName, progressbar );
if ( this.checkBoxSDI.Checked == true )
this.SaveResultSheet( this.listViewSDIResult, SDISaveFileName, progressbar );
}
private void SaveResultSheet ( ListView listView, string fileName, ProgressBar progressbar ){
progressbar.PerformStep();
try{
if (this.objExcel == null )
return;
Excel.Workbooks workbooks = this.objExcel.Workbooks;
Excel._Workbook workbook = workbooks.Add( Excel.XlWBATemplate.xlWBATWorksheet );
Excel.Sheets sheets = workbook.Worksheets;
Excel._Worksheet worksheet = (Excel._Worksheet) sheets.get_Item(1);
if (worksheet == null ){
MessageBox.Show("Error: worksheet == null");
}
progressbar.PerformStep();
Excel.Range range1 = worksheet.get_Range("A1", "IV1");
if (range1 == null){
MessageBox.Show("Error: range == null");
}
// ListView ColumnHeader甫 Excel俊 持绰促.
int columnHeader_Count = listView.Columns.Count;
progressbar.Maximum = progressbar.Maximum + columnHeader_Count;
for ( int j = 1; j <= columnHeader_Count ; j ++ ){
range1.Cells.set_Item(1, j, listView.Columns[j - 1].Text );
progressbar.PerformStep();
}
// ListView狼 Item阑 Excel俊 持绰促
int item_Count;
ListViewItem item;
int column_Count = listView.Items.Count;
progressbar.Maximum = progressbar.Maximum + column_Count;
progressbar.PerformStep();
for (int i = 1; i <= listView.Items.Count ; i++){
progressbar.PerformStep();
item = listView.Items[i - 1];
item_Count = item.SubItems.Count;
progressbar.Maximum = progressbar.Maximum + item_Count;
for ( int j = 1; j <= item.SubItems.Count ; j ++){
progressbar.PerformStep();
range1.Cells.set_Item(i + 1, j,item.SubItems[j - 1].Text);
}
}
try{
// Excel 郴侩阑 拳老俊 历厘茄促
workbook.Close(true, fileName, false);
progressbar.PerformStep();
workbooks.Close();
progressbar.PerformStep();
}
catch( System.Exception e ){
System.Windows.Forms.MessageBox.Show( " 历厘阑 秒家窍看嚼聪促" );
return;
}
}
catch( System.Exception e ){
System.Windows.Forms.MessageBox.Show ( " 促澜苞 鞍篮 俊矾啊 惯积窍咯 历厘捞 角菩窍看嚼聪促.\n" + e.ToString());
return;
}
// 历厘捞 场车促绰 皋技瘤甫 焊牢促
System.Windows.Forms.MessageBox.Show (this, fileName + "甫 历厘窍看嚼聪促" );
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -