- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Text;
- using System.Windows.Forms;
- using System.IO;
- using System.Collections.Generic;
- using System.Collections;
- namespace Analyser
- {
- public struct Stock
- {
- public int id;
- // float []value = new float[10];
- // int []index = new int[10];
- public float value;
- public int index = -1;
- }
- public partial class FormAnalyser : Form
- {
- private string rawdataFile;
- private FormOption frmOption = null;
- private List<Stock> myStocks = new List<Stock>();
- private delegate void ParseString(string str);
- public FormAnalyser()
- {
- InitializeComponent();
- InitializeListviewer();
- }
- public void InitializeListviewer()
- {
- ColumnHeader columnHeader = new ColumnHeader();
- columnHeader.Text = "股票名";
- columnHeader.TextAlign = HorizontalAlignment.Center;
- columnHeader.Width = 146;
- ColumnHeader columnHeader2 = new ColumnHeader();
- columnHeader2.Text = "当天关注值";
- columnHeader2.TextAlign = HorizontalAlignment.Center;
- columnHeader2.Width = 146; ;
- ColumnHeader columnHeader3 = new ColumnHeader();
- columnHeader3.Text = "10";
- columnHeader3.TextAlign = HorizontalAlignment.Center;
- columnHeader3.Width = 146;
- ListView1.Columns.Add(columnHeader);
- ListView1.Columns.Add(columnHeader2);
- ListView1.Columns.Add(columnHeader3);
- //ListViewItem listItem = new ListViewItem("SH00222");
- //listItem.SubItems.Add("10");
- //listItem.SubItems.Add("233");
- //ListView1.Items.Add(listItem);
- }
- private void Form1_Resize(object sender, EventArgs e)
- {
- ListView1.Top = 40;
- ListView1.Left = 10;
- ListView1.Width = this.Width - 28;
- ListView1.Height = this.Height - 88;
- }
- public void ParseLine(string strLine)
- {
- string stockName = strLine.Substring(0, 8);
- // DateTime date = Convert.ToDateTime(strLine.Substring(8, 11));
- if (strLine.Substring(8, 11).IndexOf("2008-12-05") < 0)
- {
- return;
- }
- double value = Double.Parse(strLine.Substring(20));
- ListViewItem listItem = new ListViewItem(stockName);
- listItem.SubItems.Add("-1"/*date.ToString()*/);
- listItem.SubItems.Add(value.ToString());
- ListView1.Items.Add(listItem);
- Stock s = new Stock();
- s.id = Int32.Parse(strLine.Substring(2, 6));
- //s.index = -1;
- s.value = float.Parse(strLine.Substring(20));
- myStocks.Add(s);
- //MessageBox.Show(stockName + date.ToString() + value.ToString());
- //return;
- }
- private void ProcessFile(string strFile, ParseString parser)
- {
- FileStream fin;
- try
- {
- fin = new FileStream(rawdataFile, FileMode.Open, FileAccess.Read);
- }
- catch
- {
- MessageBox.Show("不能打开文件" + rawdataFile);
- return;
- }
- try
- {
- StreamReader fstr_in = new StreamReader(fin);
- string strLine;
- while ((strLine = fstr_in.ReadLine()) != null)
- {
- parser(strLine);
- }
- fstr_in.Close();
- }
- catch
- {
- }
- MessageBox.Show("文件加载成功");
- }
- private void 打开原始数据OToolStripMenuItem_Click(object sender, EventArgs e)
- {
- OpenFileDialog dlg = new OpenFileDialog();
- if (dlg.ShowDialog() == DialogResult.OK)
- {
- rawdataFile = dlg.FileName;
- //加载文件。。。
- ProcessFile(rawdataFile, new ParseString(ParseLine));
- }
- }
- private void ListView1_ColumnClick(object sender, ColumnClickEventArgs e)
- {
- //MessageBox.Show(e.Column.ToString());
- switch (e.Column)
- {
- case 2:
- Sort(e.Column);
- MessageBox.Show("ok");
- break;
- }
- }
- public void Sort(int column)
- {
- float value1, value2;// insert sort
- for (int i = 0; i < ListView1.Items.Count; i++)
- {
- int index = i;
- value1 = float.Parse(ListView1.Items[i].SubItems[column].Text);
- for (int j = i + 1; j < ListView1.Items.Count; j++)
- {
- string str = ListView1.Items[j].SubItems[column].Text;
- value2 = float.Parse(str);
- if (value2 < value1)
- {
- value1 = value2;
- index = j;
- }
- //MessageBox.Show(str);
- //return;
- }
- if (i != index)
- {
- //swap
- for (int j = 0; j < ListView1.Columns.Count; j++)
- {
- string str = ListView1.Items[index].SubItems[j].Text;
- ListView1.Items[index].SubItems[j].Text = ListView1.Items[i].SubItems[j].Text;
- ListView1.Items[i].SubItems[j].Text = str;
- }
- }
- }
- }
- public void AddIndex()
- {
- for (int i = 0; i < ListView1.Items.Count; i++)
- {
- ListView1.Items[i].SubItems[1].Text = (i+1).ToString();
- }
- }
- public void AddIndex(List<Stock> myList)
- {
- // Sort
- for (int i = 0; i < myList.Count; i++)
- {
- int minIndex = i;
- float minValue = myList[i].value;
- for (int j = i + 1; j < myList.Count; j++)
- {
- if (myList[i].value > myList[j].value)
- {
- minIndex = j;
- minValue = myList[j].value;
- }
- }
- if (minIndex != i)
- {
- Stock temp = myList[i];
- myList[i] = myList[minIndex];
- myList[minIndex] = temp;
- }
- }
- // add index
- for (int i = 0; i < myList.Count; i++)
- {
- myList[i].index = i + 1;
- }
- }
- private void 序号IToolStripMenuItem_Click(object sender, EventArgs e)
- {
- AddIndex();
- 序号IToolStripMenuItem.Enabled = false;
- }
- private void 选项OToolStripMenuItem_Click(object sender, EventArgs e)
- {
- if (frmOption == null)
- {
- frmOption = new FormOption(this);
- }
- frmOption.Show();
- frmOption.Activate();
- }
- public FormOption FrmOption
- {
- get { return frmOption; }
- set { frmOption = value; }
- }
- /// <summary>
- /// 读取文件,加入新列
- /// </summary>
- /// <param name="columnName">新列的名字</param>
- public void InsertColumn(string columnName)
- {
- // 添加列
- ColumnHeader columnHeader = new ColumnHeader();
- columnHeader.Text = columnName;
- columnHeader.TextAlign = HorizontalAlignment.Center;
- columnHeader.Width = 146;
- ListView1.Columns.Add(columnHeader);
- }
- }
- }
18:18 day
最新推荐文章于 2022-07-18 21:47:53 发布