18:18 day

  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Text;
  7. using System.Windows.Forms;
  8. using System.IO;
  9. using System.Collections.Generic;
  10. using System.Collections;
  11. namespace Analyser
  12. {
  13.     public struct Stock
  14.     {
  15.         public int id;
  16.  //       float []value =  new float[10];
  17.  //       int []index = new int[10];
  18.         public float value;
  19.         public int index = -1;
  20.     }
  21.     public partial class FormAnalyser : Form
  22.     {
  23.         private string rawdataFile;
  24.         private FormOption frmOption = null;
  25.         private List<Stock> myStocks = new List<Stock>();
  26.         private delegate void ParseString(string str);
  27.         public FormAnalyser()
  28.         {
  29.             InitializeComponent();
  30.             InitializeListviewer();
  31.         }
  32.         public void InitializeListviewer()
  33.         {
  34.             ColumnHeader columnHeader = new ColumnHeader();
  35.             columnHeader.Text = "股票名";
  36.             columnHeader.TextAlign = HorizontalAlignment.Center;
  37.             columnHeader.Width = 146;
  38.             ColumnHeader columnHeader2 = new ColumnHeader();
  39.             columnHeader2.Text = "当天关注值";
  40.             columnHeader2.TextAlign = HorizontalAlignment.Center;
  41.             columnHeader2.Width = 146; ;
  42.             ColumnHeader columnHeader3 = new ColumnHeader();
  43.             columnHeader3.Text = "10";
  44.             columnHeader3.TextAlign = HorizontalAlignment.Center;
  45.             columnHeader3.Width = 146;
  46.             ListView1.Columns.Add(columnHeader);
  47.             ListView1.Columns.Add(columnHeader2);
  48.             ListView1.Columns.Add(columnHeader3);
  49.             //ListViewItem listItem = new ListViewItem("SH00222");
  50.             //listItem.SubItems.Add("10");
  51.             //listItem.SubItems.Add("233");
  52.             //ListView1.Items.Add(listItem);
  53.         }
  54.         private void Form1_Resize(object sender, EventArgs e)
  55.         {
  56.             ListView1.Top = 40;
  57.             ListView1.Left = 10;
  58.             ListView1.Width = this.Width - 28;
  59.             ListView1.Height = this.Height - 88;
  60.         }
  61.         public void ParseLine(string strLine)
  62.         {
  63.             string stockName = strLine.Substring(0, 8);
  64.  //           DateTime date = Convert.ToDateTime(strLine.Substring(8, 11));
  65.             if (strLine.Substring(8, 11).IndexOf("2008-12-05") < 0)
  66.             {
  67.                 return;
  68.             }
  69.             double value = Double.Parse(strLine.Substring(20));
  70.             ListViewItem listItem = new ListViewItem(stockName);
  71.             listItem.SubItems.Add("-1"/*date.ToString()*/);
  72.             listItem.SubItems.Add(value.ToString());
  73.             ListView1.Items.Add(listItem);
  74.             Stock s = new Stock();
  75.             s.id = Int32.Parse(strLine.Substring(2, 6));
  76.             //s.index = -1;
  77.             s.value = float.Parse(strLine.Substring(20));
  78.             myStocks.Add(s);
  79.             //MessageBox.Show(stockName + date.ToString() + value.ToString());
  80.             //return;
  81.         }
  82.         private void ProcessFile(string strFile, ParseString parser)
  83.         {
  84.             FileStream fin;
  85.             try
  86.             {
  87.                 fin = new FileStream(rawdataFile, FileMode.Open, FileAccess.Read);
  88.             }
  89.             catch
  90.             {
  91.                 MessageBox.Show("不能打开文件" + rawdataFile);
  92.                 return;
  93.             }
  94.             try
  95.             {
  96.                 StreamReader fstr_in = new StreamReader(fin);
  97.                 string strLine;
  98.                 while ((strLine = fstr_in.ReadLine()) != null)
  99.                 {
  100.                     parser(strLine);
  101.                 }
  102.                 fstr_in.Close();
  103.             }
  104.             catch
  105.             {
  106.             }
  107.             MessageBox.Show("文件加载成功");
  108.         }
  109.         private void 打开原始数据OToolStripMenuItem_Click(object sender, EventArgs e)
  110.         {
  111.             OpenFileDialog dlg = new OpenFileDialog();
  112.             if (dlg.ShowDialog() == DialogResult.OK)
  113.             {
  114.                 rawdataFile = dlg.FileName;
  115.                 //加载文件。。。
  116.                 ProcessFile(rawdataFile, new ParseString(ParseLine));
  117.             }
  118.         }
  119.         private void ListView1_ColumnClick(object sender, ColumnClickEventArgs e)
  120.         {
  121.             //MessageBox.Show(e.Column.ToString());
  122.             switch (e.Column)
  123.             {
  124.                 case 2:
  125.                     Sort(e.Column);
  126.                     MessageBox.Show("ok");
  127.                     break;
  128.             }
  129.         }
  130.         public void Sort(int column)
  131.         {
  132.             float value1, value2;// insert sort
  133.             for (int i = 0; i < ListView1.Items.Count; i++)
  134.             {
  135.                 int index = i;
  136.                 value1 = float.Parse(ListView1.Items[i].SubItems[column].Text);
  137.                 for (int j = i + 1; j < ListView1.Items.Count; j++)
  138.                 {
  139.                     string str = ListView1.Items[j].SubItems[column].Text;
  140.                     value2 = float.Parse(str);
  141.                     if (value2 < value1)
  142.                     {
  143.                         value1 = value2;
  144.                         index = j;
  145.                     }
  146.                     //MessageBox.Show(str);
  147.                     //return;
  148.                 }
  149.                 if (i != index)
  150.                 {
  151.                     //swap
  152.                     for (int j = 0; j < ListView1.Columns.Count; j++)
  153.                     {
  154.                         string str = ListView1.Items[index].SubItems[j].Text;
  155.                         ListView1.Items[index].SubItems[j].Text = ListView1.Items[i].SubItems[j].Text;
  156.                         ListView1.Items[i].SubItems[j].Text = str;
  157.                     }
  158.                 }
  159.             }
  160.         }
  161.         public void AddIndex()
  162.         {
  163.             for (int i = 0; i < ListView1.Items.Count; i++)
  164.             {
  165.                 ListView1.Items[i].SubItems[1].Text = (i+1).ToString();
  166.             }
  167.         }
  168.         public void AddIndex(List<Stock> myList)
  169.         {
  170.             // Sort
  171.             for (int i = 0; i < myList.Count; i++)
  172.             {
  173.                 int minIndex = i;
  174.                 float minValue = myList[i].value;
  175.                 for (int j = i + 1; j < myList.Count; j++)
  176.                 {
  177.                     if (myList[i].value > myList[j].value)
  178.                     {
  179.                         minIndex = j;
  180.                         minValue = myList[j].value;
  181.                     }
  182.                 }
  183.                 if (minIndex != i)
  184.                 {
  185.                     Stock temp = myList[i];
  186.                     myList[i] = myList[minIndex];
  187.                     myList[minIndex] = temp;
  188.                 }
  189.             }
  190.             // add index
  191.             for (int i = 0; i < myList.Count; i++)
  192.             {
  193.                 myList[i].index = i + 1;
  194.             }
  195.         }
  196.         private void 序号IToolStripMenuItem_Click(object sender, EventArgs e)
  197.         {
  198.             AddIndex();
  199.             序号IToolStripMenuItem.Enabled = false;
  200.         }
  201.         private void 选项OToolStripMenuItem_Click(object sender, EventArgs e)
  202.         {
  203.             if (frmOption == null)
  204.             {
  205.             frmOption = new FormOption(this);
  206.             }
  207.             frmOption.Show();
  208.             frmOption.Activate();
  209.         }
  210.         public FormOption FrmOption
  211.         {
  212.             get { return frmOption; }
  213.             set { frmOption = value; }
  214.         }
  215.         /// <summary>
  216.         /// 读取文件,加入新列
  217.         /// </summary>
  218.         /// <param name="columnName">新列的名字</param>
  219.         public void InsertColumn(string columnName)
  220.         {
  221.             // 添加列
  222.             ColumnHeader columnHeader = new ColumnHeader();
  223.             columnHeader.Text = columnName;
  224.             columnHeader.TextAlign = HorizontalAlignment.Center;
  225.             columnHeader.Width = 146;
  226.             ListView1.Columns.Add(columnHeader);
  227.         }
  228.     }
  229. }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值