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

📄 findata.fxjreader.cs

📁 分析家数据格式解析源码。日线行情、分笔成交
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.Win32;
using FinData;

namespace FinData
{
    internal partial class DzhReader : Form
    {
        public DzhReader()
        {
            InitializeComponent();
        }
        string[,] dataArray;
        private void button1_Click(object sender, EventArgs e)
        {
            FinData.DzhData dzh = new  FinData.DzhData();
            if (dataType.Text.Trim() == "")
            {
                MessageBox.Show("请选择数据类型!", "信息");
                return;
            }
            try
            {
                string callText;
                string dt = dataType.Text.Split('-')[0];
                if (newFileName.Text == "")
                {
                    dataArray = dzh.GetData(dt, code.Text);
                    callText = "dzhdata.GetData(\"" + dt + "\",\"" + code.Text.Trim() + "\")";
                }
                else
                {
                    dataArray = dzh.GetData(dt, code.Text, newFileName.Text);
                    callText = "dzhdata.GetData(\"" + dt + "\",\"" + code.Text.Trim() +"\",\"" + newFileName.Text.Trim() + "\")";
                }
                //statusStrip1.Text = dzh.Msg;
                if (dzh.Error == 0 && dataArray.GetLength(0) > 0)
                {
                    string[,] colname = dzh.GetFields(dt);
                    dataGridView.DataSource = new ArrayDataView(dataArray);
                    for (int i = 0; i < dataGridView.Rows.Count; i++)
                    {
                        dataGridView.Rows[i].HeaderCell.Value = (i+1).ToString().Trim();
                    }
                    if (colname.GetLength(0) == dataGridView.Columns.Count)
                    {
                        for (int i = 0; i < colname.GetLength(0); i++)
                        {
                            dataGridView.Columns[i].HeaderText = colname[i, 0] + "(" + colname[i, 1] + ")";
                        }
                    }
                    methodText.Text = callText;
                }
                else
                {
                    methodText.Text = "";
                    MessageBox.Show("没有数据或发生错误 " + dzh.Msg);
                }
            }
            catch (Exception ex)
            {
                methodText.Text = "";
                MessageBox.Show(ex.Message);
            }
            
        }

        private void DzhReader_Load(object sender, EventArgs e)
        {
            DzhData dzh = new DzhData();
            //string[] dataTypeNames = dzh.GetTables("");
            string[,] tableNames = dzh.GetTables();
            for (int i = 0; i < tableNames.GetLength(0); i++)
            {
                dataType.Items.Add(tableNames[i,0]+"-"+tableNames[i,1]);
            }
        }
        private void dataType_SelectedIndexChanged(object sender, EventArgs e)
        {
            switch (dataType.Text.Split('-')[0].ToLower())
            {
                case "dm":
                    codeDesc.Text = "(请输入市场代码,沪市为SH,深市为SZ等。)";
                    code.Text = "SH";
                    newFileNameDesc.Text = "(一般为空)";
                    newFileName.Text = "";
                    break;
                case "hqmb":
                    codeDesc.Text = "(请输入市场代码,沪市为SH,深市为SZ等。)";
                    code.Text = "SZ000001";
                    newFileNameDesc.Text = "(若要读最新分笔成交不必填写;若要读历史分笔成交,请输入文件名,\n如“20060324.PRP”表示2006年3月24日的分笔成交)";
                    newFileName.Text = ""; 
                    break;
                case "bk":
                    codeDesc.Text = "(若读取所有板块请清空;若读取某个板块请输入板块名称,如“A股板块”等。)";
                    code.Text = "";
                    newFileNameDesc.Text = "(空,未使用。)";
                    newFileName.Text = ""; 
                    break;
                case "pj":
                    codeDesc.Text = "(若读取所有评级请清空;若读取某只证券的评级请输入证券代码,如“SZ000001”等。)";
                    code.Text = "";
                    newFileNameDesc.Text = "(空,未使用。)";
                    newFileName.Text = ""; 
                    break;
                default:
                    codeDesc.Text = "(必填,由市场+证券代码组成,如SZ000001、SH000001、SH600000等)";
                    code.Text = "SZ000001";
                    newFileNameDesc.Text = "(一般为空)";
                    newFileName.Text = ""; 
                    break;                    
            }
            methodText.Text = "";
        }



        private void readFieldNames_Click(object sender, EventArgs e)
        {
            FinData.DzhData dzh = new FinData.DzhData();
            //string[,] s;
            if (dataType.Text.Trim() == "")
            {
                MessageBox.Show("请选择数据类型!","信息");
                return;
            }
            try
            {
                string callText;
                string dt = dataType.Text.Split('-')[0];
                dataArray = dzh.GetFields(dt);
                callText = "dzhdata.GetFields(\"" + dt + "\")";

                if (dzh.Error == 0 && dataArray.GetLength(0) > 0)
                {
                    dataGridView.DataSource = new ArrayDataView(dataArray);
                    for (int i = 0; i < dataGridView.Rows.Count; i++)
                    {
                        dataGridView.Rows[i].HeaderCell.Value = (i + 1).ToString().Trim();
                    }
                    dataGridView.Columns[0].HeaderText ="字段名称";
                    dataGridView.Columns[1].HeaderText = "字段说明";
                    dataGridView.Columns[2].HeaderText = "字段类型";
                    methodText.Text = callText;
                }
                else
                {
                    methodText.Text = "";
                    MessageBox.Show("没有数据或发生错误 " + dzh.Msg);
                }
            }
            catch (Exception ex)
            {
                methodText.Text = "";
                MessageBox.Show(ex.Message);
            }
            

        }

        private void url_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            System.Diagnostics.Process process = new System.Diagnostics.Process();
            process.StartInfo.FileName = "iexplore.exe";
            process.StartInfo.Arguments = "http://www.sasfans.com/";
            process.Start();
        }

        private void exportData_Click(object sender, EventArgs e)
        {
            if (dataArray == null)
            {
                MessageBox.Show("没有数据!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
                return;
            }
            SaveFileDialog fileDialog = new SaveFileDialog();
            fileDialog.AddExtension = true;
            fileDialog.CheckFileExists = false;
            fileDialog.CheckPathExists = true;
            fileDialog.FileName = methodText.Text.ToLower().IndexOf("getfields") > 0 ? dataType.Text.Split('-')[0] + "_fields" : dataType.Text.Split('-')[0] + "_" + code.Text.Trim() + (newFileName.Text.ToLower().IndexOf(".prp") > 0 ? "_" + newFileName.Text.Substring(0,6): "");
            fileDialog.DefaultExt = "txt";
            fileDialog.Filter = "文本(*.txt)|*.txt";
            fileDialog.OverwritePrompt = true;
            fileDialog.RestoreDirectory = true;
            DialogResult result = fileDialog.ShowDialog();
            System.IO.StreamWriter sw = new System.IO.StreamWriter(fileDialog.FileName);
            if (result == DialogResult.OK)
            {
                try
                {

                    for (int i = 0; i < dataGridView.ColumnCount; i++)
                    {
                        sw.Write(dataGridView.Columns[i].HeaderText + "  ,  ");
                    }
                    sw.WriteLine();
                    for (int ii = 0; ii < dataArray.GetLength(0); ii++)
                    {
                        string s = "";
                        for (int jj = 0; jj < dataArray.GetLength(1); jj++)
                            s += dataArray[ii, jj] + "  ,  ";
                        sw.WriteLine(s);
                    }
                    //sw.Close();

                }
                catch(Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                finally
                {
                    sw.Close();
                }
            }
        }


 




    }
}

⌨️ 快捷键说明

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