/************************************************************************** * Note: 请求板块明细表数据 测试通过 * args: ctLast,请求时传递的时间戳,服务端从该时间戳开始数据 * szCode,请求时传递码表代码, * nSize: 保存szCode的字节数 * nRequestId : 0=增量;1=全量;2=指定类别全量 * IsImportant:是否为重要板块 * void: * **************************************************************************/ public DMRetOutput UpdateBlockDetail(long ctLast, String szCode, int nSize, int nRequestId, bool bIsImportant) { DMReqInput reqInput = new DMReqInput(); nSize = (nSize == 0 ? 70 : nSize); reqInput.size = nSize; if (bIsImportant) { reqInput.itemid = SDATA_TYPE_BLOCKDETAIL_IMPT; } else { reqInput.itemid = SDATA_TYPE_BLOCKDETAIL_NOTIMPT; } reqInput.timestamp = ctLast; reqInput.requestid = nRequestId;//测试 if (szCode == null) { szCode = ""; } reqInput.ptr = GetStringBytes(szCode, 70); DMRetOutput reqOutput = GetDMRet(reqInput); return(reqOutput); }
/************************************************************************** * Note: 请求码表数据 测试通过 * args: ctLast,请求时传递的时间戳,服务端从该时间戳开始数据 * szCode,请求时传递码表代码, * nRequestId : 0=增量;1=全量;2=指定类别全量 * IsImportant:是否为重要板块 * void: * **************************************************************************/ public DMRetOutput UpdateKeySpriteData(long ctLast, String szCode, int nRequestId, bool bIsImportant) { DMReqInput reqInput = new DMReqInput(); reqInput.size = 20; if (bIsImportant) { reqInput.itemid = SDATA_TYPE_KEYSPRITE_IMPORTANT; } else { reqInput.itemid = SDATA_TYPE_KEYSPRITE_NOTIMPORTANT; } reqInput.timestamp = ctLast; reqInput.requestid = nRequestId; if (szCode == null && szCode.Length > 0) { szCode = ""; } reqInput.ptr = GetStringBytes(szCode, 20); DMRetOutput reqOutput = GetDMRet(reqInput); return(reqOutput); }
/// <summary> /// 请求数据 /// </summary> /// <param name="dmReq">请求结构</param> /// <returns>返回结构</returns> protected DMRetOutput GetDMRet(DMReqInput dmReq) { DMRetOutput dmRet = new DMRetOutput(); using (MemoryStream ms = new MemoryStream()) { using (BinaryWriter bw = new BinaryWriter(ms)) { byte[] result = dmReq.Write(ms, bw); using (MemoryStream ms2 = new MemoryStream(result)) { using (BinaryReader br = new BinaryReader(ms2)) { dmRet.Read(result, br); } } result = null; } } if (dmRet.itemid == 0) { dmRet.itemid = dmReq.itemid; } return(dmRet); }
/************************************************************************** * Note: 更新状态 测试通过 * void: * **************************************************************************/ public DMRetOutput UpdateState() { DMReqInput reqInput = new DMReqInput(); reqInput.itemid = 997; reqInput.timestamp = 0; reqInput.requestid = 1; DMRetOutput reqOutput = GetDMRet(reqInput); return(reqOutput); }
/************************************************************************** * Note: 更新FuncompCode 测试通过 * args: ctLast,请求时传递的时间戳,服务端从该时间戳开始数据 * void: * **************************************************************************/ public DMRetOutput UpdateFuncompCode(long nTime) { DMReqInput reqInput = new DMReqInput(); reqInput.itemid = SDATA_TYPE_FUNDCOMPCODE; reqInput.timestamp = nTime; reqInput.requestid = 1; DMRetOutput reqOutput = GetDMRet(reqInput); return(reqOutput); }
/************************************************************************** * Note: 码表目录下TYPE文件数据更新 测试通过 * args: ctLast,请求时传递的时间戳,服务端从该时间戳开始数据 * void: * **************************************************************************/ public DMRetOutput UpdateTypeFile(long nTime) { DMReqInput reqInput = new DMReqInput(); reqInput.itemid = SDATA_TYPE_TYPE; reqInput.timestamp = nTime; reqInput.requestid = 1; DMRetOutput reqOutput = GetDMRet(reqInput); return(reqOutput); }
/************************************************************************** * Note: 码表目录下URL文件数据删除获取 测试通过 * args: ctLast,请求时传递的时间戳,服务端从该时间戳开始数据 * void: * **************************************************************************/ public DMRetOutput UpdateUrlFileDelete(long ctLast) { DMReqInput reqInput = new DMReqInput(); reqInput.itemid = SDATA_TYPE_URL_DELETE; reqInput.timestamp = ctLast; reqInput.requestid = 1; DMRetOutput reqOutput = GetDMRet(reqInput); return(reqOutput); }
/************************************************************************** * Note: 请求行情AREAINDGNLISH_GN文件数据 测试通过 * args: ctLast,请求时传递的时间戳,服务端从该时间戳开始数据 * void: * **************************************************************************/ public DMRetOutput UpdateAREAINDGNLISH_GN(long nTime) { DMReqInput reqInput = new DMReqInput(); reqInput.itemid = SDATA_TYPE_AREAINDGNLISH_GN; reqInput.timestamp = nTime; reqInput.requestid = 1; DMRetOutput reqOutput = GetDMRet(reqInput); return(reqOutput); }
/************************************************************************** * Note: 请求数据 sdata/china/BKZSDYGX 测试通过 * args: ctLast,请求时传递的时间戳,服务端从该时间戳开始数据 * void: * **************************************************************************/ public DMRetOutput UpdateBKZSDYGX(long nTime) { DMReqInput reqInput = new DMReqInput();; reqInput.itemid = SDATA_TYPE_BKZSDYGX; reqInput.timestamp = nTime; reqInput.requestid = 1; DMRetOutput reqOutput = GetDMRet(reqInput); return(reqOutput); }
/// <summary> /// 获取板块项 /// </summary> /// <returns>板块项</returns> public List <DMBlockItem> GetBlockItems() { String code = ""; long time = 0; List <DMBlockItem> items = new List <DMBlockItem>(); while (true) { DMRetOutput dm1 = UpdateBlockTree(time, 1, 0, code); DMBlockItem lastItem = null; using (MemoryStream ms = new MemoryStream(dm1.ptr)) { using (BinaryReader br = new BinaryReader(ms)) { int size = dm1.size; for (int i = 0; i < size; i++) { DMBlockItem item = new DMBlockItem(); item.innerCode = GetBytesString(br, 16); item.code = GetBytesString(br, 50); item.name = GetBytesString(br, 200); item.parentcode = GetBytesString(br, 50); item.typcode = GetBytesString(br, 10); item.typname = GetBytesString(br, 200); item.tmpl = GetBytesString(br, 10); item.order = br.ReadInt32(); item.timestamp = br.ReadInt64(); items.Add(item); lastItem = item; } } } if (!dm1.last) { if (lastItem != null) { code = lastItem.code; time = lastItem.timestamp; } } if (dm1.last) { break; } } code = ""; time = 0; return(items); }
/************************************************************************** * Note: 请求板块树 数据 测试通过 * args: ctLast,请求时传递的时间戳,服务端从该时间戳开始数据 * nRequestId : 0=增量;1=全量;2=指定类别全量 * void: * **************************************************************************/ public DMRetOutput UpdateBlockTree(long ctLast, int nRequestId, int nSize, String szCode) { DMReqInput reqInput = new DMReqInput(); reqInput.itemid = SDATA_TYPE_BLOCKDATATREE; reqInput.timestamp = ctLast; reqInput.requestid = 1; reqInput.size = nSize; if (szCode != null && szCode.Length > 0) { reqInput.ptr = GetStringBytes(szCode, nSize); } DMRetOutput reqOutput = GetDMRet(reqInput); return(reqOutput); }
/// <summary> /// 获取板块明细 /// </summary> /// <returns></returns> public Dictionary <String, List <DMBlockDetailItem> > GetBlockDetailItems() { Dictionary <String, List <DMBlockDetailItem> > list = new Dictionary <String, List <DMBlockDetailItem> >(); String code = ""; long time = 0; while (true) { DMRetOutput dm1 = UpdateBlockDetail(time, code, 0, 1, true); DMBlockDetailItem lastItem = null; using (MemoryStream ms = new MemoryStream(dm1.ptr)) { using (BinaryReader br = new BinaryReader(ms)) { int size = dm1.size; br.ReadBytes(50); for (int i = 0; i < size; i++) { DMBlockDetailItem item = new DMBlockDetailItem(); item.bkcode = GetBytesString(br, 50); item.code = GetBytesString(br, 22); item.innercode = br.ReadInt32(); item.timestamp = br.ReadInt64(); if (!list.ContainsKey(item.bkcode)) { list[item.bkcode] = new List <DMBlockDetailItem>(); } list[item.bkcode].Add(item); lastItem = item; } } } if (!dm1.last) { if (lastItem != null) { code = lastItem.code.Replace("\0", ""); time = lastItem.timestamp; } } if (dm1.last) { dm1.ptr = null; break; } else { dm1.ptr = null; } } code = ""; time = 0; #region Delete NON_IMPORTANT //while (true) //{ // DMRetOutput dm1 = UpdateBlockDetail(time, code, 0, 1, false); // DMBlockDetailItem lastItem = null; // using (MemoryStream ms = new MemoryStream(dm1.ptr)) // { // using (BinaryReader br = new BinaryReader(ms)) // { // int size = dm1.size; // br.ReadBytes(50); // for (int i = 0; i < size; i++) // { // DMBlockDetailItem item = new DMBlockDetailItem(); // item.bkcode = GetBytesString(br, 50); // item.code = GetBytesString(br, 22); // item.innercode = br.ReadInt32(); // item.timestamp = br.ReadInt64(); // if (!list.ContainsKey(item.bkcode)) // { // list[item.bkcode] = new List<DMBlockDetailItem>(); // } // list[item.bkcode].Add(item); // lastItem = item; // } // } // } // if (!dm1.last) // { // if (lastItem != null) // { // code = lastItem.code.Replace("\0", ""); // time = lastItem.timestamp; // } // } // if (dm1.last) // { // dm1.ptr = null; // break; // } // else // { // dm1.ptr = null; // } //} #endregion return(list); }
/// <summary> /// 获取码表 /// </summary> /// <returns>码表</returns> public List <KwItem> GetKwItems() { String code = ""; long time = 0; List <KwItem> items = new List <KwItem>(); Dictionary <String, List <KwItem> > items2 = new Dictionary <String, List <KwItem> >(); while (true) { DMRetOutput dm1 = UpdateKeySpriteData(time, code, 0, true); KwItem lastItem = null; using (MemoryStream ms = new MemoryStream(dm1.ptr)) { using (BinaryReader br = new BinaryReader(ms)) { int size = dm1.size; for (int i = 0; i < size; i++) { KwItem item = new KwItem(); item.Code = GetBytesString(br, 20); item.Name = GetBytesString(br, 100); item.Pingyin = GetBytesString(br, 100); item.Marketcode = GetBytesString(br, 40); item.State = br.ReadInt32(); item.Innercode = br.ReadInt32(); item.Type = br.ReadInt32(); item.Timestamp = br.ReadInt64(); items.Add(item); if (!items2.ContainsKey(item.Type.ToString())) { items2[item.Type.ToString()] = new List <KwItem>(); } items2[item.Type.ToString()].Add(item); lastItem = item; } } } if (!dm1.last) { if (lastItem != null) { code = lastItem.Code; time = lastItem.Timestamp; } } if (dm1.last) { break; } } //code = ""; //time = 0; //while (true) //{ // DMRetOutput dm1 = UpdateKeySpriteData(time, code, 0, false); // KwItem lastItem = null; // using (MemoryStream ms = new MemoryStream(dm1.ptr)) // { // using (BinaryReader br = new BinaryReader(ms)) // { // int size = dm1.size; // for (int i = 0; i < size; i++) // { // KwItem item = new KwItem(); // item.Code = GetBytesString(br, 20); // item.Name = GetBytesString(br, 100); // item.Pingyin = GetBytesString(br, 100); // item.Marketcode = GetBytesString(br, 40); // item.State = br.ReadInt32(); // item.Innercode = br.ReadInt32(); // item.Type = br.ReadInt32(); // item.Timestamp = br.ReadInt64(); // items.Add(item); // if (!items2.ContainsKey(item.Type.ToString())) // { // items2[item.Type.ToString()] = new List<KwItem>(); // } // items2[item.Type.ToString()].Add(item); // lastItem = item; // } // } // } // if (!dm1.last) // { // if (lastItem != null) // { // code = lastItem.Code; // time = lastItem.Timestamp; // } // } // if (dm1.last) // { // break; // } //} DataTable dt = AnalysisDMRetOutput(UpdateTypeFile(0)); foreach (DataRow row in dt.Rows) { String typename = row[0].ToString(); String marketCode = row[1].ToString(); String marketName = ""; if (items2.ContainsKey(marketCode)) { List <KwItem> items3 = items2[marketCode]; if (marketCode == "1") { marketName = "上证A股"; } else if (marketCode == "2") { marketName = "上证B股"; } else if (marketCode == "3") { marketName = "深证A股"; } else if (marketCode == "4") { marketName = "深证B股"; } else if (marketCode == "13") { marketName = "上证基金"; } else if (marketCode == "14") { marketName = "深证基金"; } else if (marketCode == "15") { marketName = "货币市场型基金"; } else if (marketCode == "16") { marketName = "混合型基金"; } else if (marketCode == "22") { marketName = "券商资管"; } else if (marketCode == "23") { marketName = "信托"; } else if (marketCode == "24") { marketName = "银行理财"; } else if (marketCode == "25") { marketName = "信托"; } else if (marketCode == "26") { marketName = "阳光私募"; } else if (marketCode == "33") { marketName = "货币型基金"; } else if (marketCode == "18") { marketName = ""; //R09M.IB } else if (marketCode == "19") { marketName = ""; //131800.SH } else if (marketCode == "20") { marketName = "利率"; //B1W.IR } else if (marketCode == "21") { marketName = ""; //DIBO1.IR } else if (marketCode == "27") { marketName = "货币期货"; } else if (marketCode == "34") { marketName = ""; //隔夜14日 } else if (marketCode == "101") { marketName = "美股"; } else if (marketCode == "11") { marketName = "商品期货"; //线材 } else if (marketCode == "12") { marketName = "股指期货"; } else if (marketCode == "50") { marketName = "贵金属"; //沪金 } else if (marketCode == "51") { marketName = "国债期货"; } else if (marketCode == "52") { marketName = "上海期货交易所"; //沪铜 } else if (marketCode == "68") { marketName = "上海期货交易所"; //橡胶 } else if (marketCode == "80") { marketName = "郑州商品交易所"; //郑棉 } else if (marketCode == "81") { marketName = "大连商品交易所"; //郑棉 } else if (marketCode == "83") { marketName = "东证大商所"; //DZDCE001.DCE } else if (marketCode == "55") { marketName = "交易型开放式基金"; //50ETF } else if (marketCode == "56") { marketName = "上证期权"; //10000010.SH } else if (marketCode == "59") { marketName = "港股"; } else if (marketCode == "60") { marketName = "港股期权"; //12108.HK } else if (marketCode == "61") { marketName = ""; //69229.HK } else if (marketCode == "62") { marketName = ""; //66186.HK } else if (marketCode == "63") { marketName = ""; //M1801C2850.DCE } else if (marketCode == "64") { marketName = ""; //M1712P3100.DCE } else if (marketCode == "82") { marketName = ""; //890019.GZEE } else if (marketCode == "5") { marketName = ""; //832158.OC } else if (marketCode == "6") { marketName = ""; //400040.OC } else if (marketCode == "121") { marketName = ""; //GBPCNY3WF.IB } else if (marketCode == "122") { marketName = ""; //GBPUSD.IB } else if (marketCode == "124") { marketName = ""; //USDDKK.FX } else if (marketCode == "111") { marketName = ""; //QI14N.CMX } else if (marketCode == "112") { marketName = ""; //UL14H.CBT } else if (marketCode == "113") { marketName = ""; //RT13V.SG } else if (marketCode == "114") { marketName = ""; //LZNT.LME } else if (marketCode == "115") { marketName = ""; //CPRC.LME } else if (marketCode == "53") { marketName = ""; //BNI.BCE } else if (marketCode == "54") { marketName = ""; //CO.FME } else if (marketCode == "71") { marketName = ""; //01566.HK } else if (marketCode == "72") { marketName = ""; //08306.HK } else if (marketCode == "73") { marketName = ""; //02301.HK } else if (marketCode == "74") { marketName = ""; //05879.HK } else if (marketCode == "79") { marketName = ""; //00806.HK } else if (marketCode == "10") { marketName = ""; //110020.SH } else if (marketCode == "8") { marketName = ""; //031232001.IB } else if (marketCode == "9") { marketName = ""; //122721.SH } else if (marketCode == "147") { marketName = ""; //SCSHK.HI } else if (marketCode == "17") { marketName = ""; //861030.EI } else if (marketCode == "28") { marketName = ""; //CN6005.SZ } else if (marketCode == "29") { marketName = ""; //CBD00133.CS } else if (marketCode == "30") { marketName = ""; //H20615.CSI } else if (marketCode == "31") { marketName = ""; //H30373.CSI } else if (marketCode == "35") { marketName = ""; //HSI.HI } else if (marketCode == "36") { marketName = ""; //JKSE.GI } else if (marketCode == "37") { marketName = ""; //KLSE.GI } else if (marketCode == "38") { marketName = ""; //KS11.GI } else if (marketCode == "39") { marketName = ""; //N225.GI } else if (marketCode == "40") { marketName = ""; //PSI.GI } else if (marketCode == "41") { marketName = ""; //SENSEX.GI } else if (marketCode == "42") { marketName = ""; //STI.GI } else if (marketCode == "43") { marketName = ""; //TWII.TW } else if (marketCode == "44") { marketName = ""; //NZ50.GI } else if (marketCode == "45") { marketName = ""; //MXX.GI } else if (marketCode == "46") { marketName = ""; //AEX.GI } else if (marketCode == "47") { marketName = ""; //ATX.GI } else if (marketCode == "48") { marketName = ""; //OSEAX.GI } else if (marketCode == "49") { marketName = ""; //RTS.GI } else if (marketCode == "65") { marketName = ""; //HSCAHSIDV.HI } else if (marketCode == "66") { marketName = ""; //CSCSHQ.GI } else if (marketCode == "67") { marketName = ""; //AS51.GI } else if (marketCode == "69") { marketName = ""; //CES280.CES } else if (marketCode == "78") { marketName = ""; //CRB.GI } else if (marketCode == "78") { marketName = ""; //CRB.GI } StringBuilder sb = new StringBuilder(); sb.AppendLine("大类名称:" + typename); sb.AppendLine("类型代码:" + marketCode); sb.AppendLine("类型名称:" + marketName); for (int i = 0; i < items3.Count; i++) { sb.AppendLine(items3[i].ToString()); } //CFileA.Write(Application.StartupPath+"\\details\\"+ marketCode + ".txt", sb.ToString()); } else { int a = 0; } Console.WriteLine("1"); } Console.WriteLine("1"); return(items); }
/*获取数据*/ /// <summary> /// 分析返回数据 /// </summary> /// <param name="retOutput">返回数据</param> public DataTable AnalysisDMRetOutput(DMRetOutput retOutput) { DataTable result = new DataTable(); if (retOutput.itemid == SDATA_TYPE_KEYSPRITE_IMPORTANT || retOutput.itemid == SDATA_TYPE_KEYSPRITE_NOTIMPORTANT) { // Generate return table. result.Columns.Add("code"); result.Columns.Add("name"); result.Columns.Add("pingyin"); result.Columns.Add("marketcode"); result.Columns.Add("state"); result.Columns.Add("innercode"); result.Columns.Add("type"); result.Columns.Add("timestamp"); if (retOutput.ptr != null) { List <DMSecuItem> items = new List <DMSecuItem>(); using (MemoryStream ms = new MemoryStream(retOutput.ptr)) { using (BinaryReader br = new BinaryReader(ms)) { int size = retOutput.size; for (int i = 0; i < size; i++) { DMSecuItem item = new DMSecuItem(); item.code = GetBytesString(br, 20); item.name = GetBytesString(br, 100); item.pingyin = GetBytesString(br, 100); item.marketcode = GetBytesString(br, 40); item.state = br.ReadInt32(); item.innercode = br.ReadInt32(); item.type = br.ReadInt32(); item.timestamp = br.ReadInt64(); items.Add(item); } for (int i = 0; i < size; i++) { DataRow r = result.NewRow(); r[0] = items[i].code; r[1] = items[i].name; r[2] = items[i].pingyin; r[3] = items[i].marketcode; r[4] = items[i].state; r[5] = items[i].innercode; r[6] = items[i].type; r[7] = items[i].timestamp; result.Rows.Add(r); } } } } } else if (retOutput.itemid == SDATA_TYPE_KEYSPRITE_DELETE_IMPT || retOutput.itemid == SDATA_TYPE_KEYSPRITE_DELETE_NOTIMPT) { // Generate return table. result.Columns.Add("code"); result.Columns.Add("timestamp"); if (retOutput.ptr != null) { List <DMSecuItemDelete> items = new List <DMSecuItemDelete>(); using (MemoryStream ms = new MemoryStream(retOutput.ptr)) { using (BinaryReader br = new BinaryReader(ms)) { int size = retOutput.size; for (int i = 0; i < size; i++) { DMSecuItemDelete item = new DMSecuItemDelete(); item.code = GetBytesString(br, 20); item.timestamp = br.ReadInt64(); items.Add(item); } for (int i = 0; i < size; i++) { DataRow r = result.NewRow(); r[0] = items[i].code; r[1] = items[i].timestamp; result.Rows.Add(r); } } } } } else if (retOutput.itemid == SDATA_TYPE_BLOCKDATATREE) { // Generate return table. result.Columns.Add("code"); result.Columns.Add("name"); result.Columns.Add("parentcode"); result.Columns.Add("typcode"); result.Columns.Add("typname"); result.Columns.Add("tmpl"); result.Columns.Add("order"); result.Columns.Add("timestamp"); if (retOutput.ptr != null) { List <DMBlockItem> items = new List <DMBlockItem>(); using (MemoryStream ms = new MemoryStream(retOutput.ptr)) { using (BinaryReader br = new BinaryReader(ms)) { int size = retOutput.size; for (int i = 0; i < size; i++) { DMBlockItem item = new DMBlockItem(); item.innerCode = GetBytesString(br, 16); item.code = GetBytesString(br, 50); item.name = GetBytesString(br, 200); item.parentcode = GetBytesString(br, 50); item.typcode = GetBytesString(br, 10); item.typname = GetBytesString(br, 200); item.tmpl = GetBytesString(br, 10); item.order = br.ReadInt32(); item.timestamp = br.ReadInt64(); items.Add(item); } for (int i = 0; i < size; i++) { DataRow r = result.NewRow(); r[0] = items[i].code; r[1] = items[i].name; r[2] = items[i].parentcode; r[3] = items[i].typcode; r[4] = items[i].typname; r[5] = items[i].tmpl; r[6] = items[i].order; r[7] = items[i].timestamp; result.Rows.Add(r); } } } } } else if (retOutput.itemid == SDATA_TYPE_BLOCKDETAIL_IMPT || retOutput.itemid == SDATA_TYPE_BLOCKDETAIL_NOTIMPT) { if (retOutput.requestid == 0 || retOutput.requestid == 1) { // Generate return table. result.Columns.Add("bkcode"); result.Columns.Add("code"); result.Columns.Add("innercode"); result.Columns.Add("timestamp"); if (retOutput.ptr != null) { List <DMBlockDetailItem> items = new List <DMBlockDetailItem>(); using (MemoryStream ms = new MemoryStream(retOutput.ptr)) { using (BinaryReader br = new BinaryReader(ms)) { br.ReadBytes(50); int size = retOutput.size; for (int i = 0; i < size; i++) { DMBlockDetailItem item = new DMBlockDetailItem(); item.bkcode = GetBytesString(br, 50); item.code = GetBytesString(br, 22); item.innercode = br.ReadInt32(); item.timestamp = br.ReadInt64(); items.Add(item); } for (int i = 0; i < size; i++) { DataRow r = result.NewRow(); r[0] = items[i].bkcode; r[1] = items[i].code; r[2] = items[i].innercode; r[3] = items[i].timestamp; result.Rows.Add(r); } } } } } else if (retOutput.requestid == 2) { // Generate return table. result.Columns.Add("code"); if (retOutput.ptr != null) { List <DMBlockData> items = new List <DMBlockData>(); using (MemoryStream ms = new MemoryStream(retOutput.ptr)) { using (BinaryReader br = new BinaryReader(ms)) { int size = retOutput.size; for (int i = 0; i < size; i++) { DMBlockData item = new DMBlockData(); item.code = GetBytesString(br, 20); items.Add(item); } for (int i = 0; i < size; i++) { DataRow r = result.NewRow(); r[0] = items[i].code; result.Rows.Add(r); } } } } } } else if (retOutput.itemid == SDATA_TYPE_BKZSDYGX) { // Generate return table. result.Columns.Add("cPUBLISHCODE"); result.Columns.Add("cSTR_EMCODE"); result.Columns.Add("cSTR_LX"); result.Columns.Add("innercode"); if (retOutput.ptr != null) { //SDM_IND_BKZSDYGX_TEST List <SDM_IND_BKZSDYGX_TEST> items = new List <SDM_IND_BKZSDYGX_TEST>(); using (MemoryStream ms = new MemoryStream(retOutput.ptr)) { using (BinaryReader br = new BinaryReader(ms)) { int size = retOutput.size; for (int i = 0; i < size; i++) { SDM_IND_BKZSDYGX_TEST item = new SDM_IND_BKZSDYGX_TEST(); item.cPUBLISHCODE = GetBytesString(br, 50); item.cSTR_EMCODE = GetBytesString(br, 60); item.cSTR_LX = GetBytesString(br, 22); item.innerCode = br.ReadInt32(); items.Add(item); } for (int i = 0; i < size; i++) { DataRow r = result.NewRow(); r[0] = items[i].cPUBLISHCODE; r[1] = items[i].cSTR_EMCODE; r[2] = items[i].cSTR_LX; r[3] = items[i].innerCode; result.Rows.Add(r); } } } } } else if (retOutput.itemid == SDATA_TYPE_MAININDEX) { // Generate return table. result.Columns.Add("nINT_PAIXU"); result.Columns.Add("cSTR_EMCODE"); if (retOutput.ptr != null) { List <sIND_MAININDEX> items = new List <sIND_MAININDEX>(); using (MemoryStream ms = new MemoryStream(retOutput.ptr)) { using (BinaryReader br = new BinaryReader(ms)) { int size = retOutput.size; for (int i = 0; i < size; i++) { sIND_MAININDEX item = new sIND_MAININDEX(); item.nINT_PAIXU = br.ReadInt32(); item.cSTR_EMCODE = GetBytesString(br, 60); items.Add(item); } for (int i = 0; i < size; i++) { DataRow r = result.NewRow(); r[0] = items[i].nINT_PAIXU; r[1] = items[i].cSTR_EMCODE; result.Rows.Add(r); } } } } } else if (retOutput.itemid == SDATA_TYPE_AREAINDGNLISH) { // Generate return table. result.Columns.Add("cSECURITYVARIETYCODE"); result.Columns.Add("cSECURITYVARIETYCODEDC"); result.Columns.Add("cSECURITYVARIETYCODEDY"); if (retOutput.ptr != null) { List <sDM_SPE_AREAINDGNLISH> items = new List <sDM_SPE_AREAINDGNLISH>(); using (MemoryStream ms = new MemoryStream(retOutput.ptr)) { using (BinaryReader br = new BinaryReader(ms)) { int size = retOutput.size; for (int i = 0; i < size; i++) { sDM_SPE_AREAINDGNLISH item = new sDM_SPE_AREAINDGNLISH(); item.cSECURITYVARIETYCODE = GetBytesString(br, 50); item.cSECURITYVARIETYCODEDC = GetBytesString(br, 50); item.cSECURITYVARIETYCODEDY = GetBytesString(br, 50); items.Add(item); } for (int i = 0; i < size; i++) { DataRow r = result.NewRow(); r[0] = items[i].cSECURITYVARIETYCODE; r[1] = items[i].cSECURITYVARIETYCODEDC; r[2] = items[i].cSECURITYVARIETYCODEDY; result.Rows.Add(r); } } } } } else if (retOutput.itemid == SDATA_TYPE_AREAINDGNLISH_GN) { // Generate return table. result.Columns.Add("cSECURITYVARIETYCODE"); result.Columns.Add("cSECURITYVARIETYCODEGN"); if (retOutput.ptr != null) { List <sDM_SPE_AREAINDGNLISH_GN> items = new List <sDM_SPE_AREAINDGNLISH_GN>(); using (MemoryStream ms = new MemoryStream(retOutput.ptr)) { using (BinaryReader br = new BinaryReader(ms)) { int size = retOutput.size; for (int i = 0; i < size; i++) { sDM_SPE_AREAINDGNLISH_GN item = new sDM_SPE_AREAINDGNLISH_GN(); item.cSECURITYVARIETYCODE = GetBytesString(br, 50); item.cSECURITYVARIETYCODEGN = GetBytesString(br, 50); items.Add(item); } for (int i = 0; i < size; i++) { DataRow r = result.NewRow(); r[0] = items[i].cSECURITYVARIETYCODE; r[1] = items[i].cSECURITYVARIETYCODEGN; result.Rows.Add(r); } } } } } else if (retOutput.itemid == SDATA_TYPE_URL) { // Generate return table. result.Columns.Add("code"); result.Columns.Add("url"); result.Columns.Add("timestamp"); if (retOutput.ptr != null) { List <EMUrlItem> items = new List <EMUrlItem>(); using (MemoryStream ms = new MemoryStream(retOutput.ptr)) { using (BinaryReader br = new BinaryReader(ms)) { int size = retOutput.size; for (int i = 0; i < size; i++) { EMUrlItem item = new EMUrlItem(); item.code = GetBytesString(br, 20); item.url = GetBytesString(br, 200); item.timestamp = br.ReadInt64(); items.Add(item); } for (int i = 0; i < size; i++) { DataRow r = result.NewRow(); r[0] = items[i].code; r[1] = items[i].url; r[2] = items[i].timestamp; result.Rows.Add(r); } } } } } else if (retOutput.itemid == SDATA_TYPE_URL_DELETE) { // Generate return table. result.Columns.Add("code"); result.Columns.Add("timestamp"); if (retOutput.ptr != null) { List <UrlItemDel> items = new List <UrlItemDel>(); using (MemoryStream ms = new MemoryStream(retOutput.ptr)) { using (BinaryReader br = new BinaryReader(ms)) { int size = retOutput.size; for (int i = 0; i < size; i++) { UrlItemDel item = new UrlItemDel(); item.code = GetBytesString(br, 10); item.timestamp = br.ReadInt64(); items.Add(item); } for (int i = 0; i < size; i++) { DataRow r = result.NewRow(); r[0] = items[i].code; r[1] = items[i].timestamp; result.Rows.Add(r); } } } } } else if (retOutput.itemid == SDATA_TYPE_TYPE) { // Generate return table. result.Columns.Add("type"); result.Columns.Add("typeCode"); result.Columns.Add("typeCount"); if (retOutput.ptr != null) { List <sDMTyItem> items = new List <sDMTyItem>(); using (MemoryStream ms = new MemoryStream(retOutput.ptr)) { using (BinaryReader br = new BinaryReader(ms)) { int size = retOutput.size; for (int i = 0; i < size; i++) { sDMTyItem item = new sDMTyItem(); item.type = GetBytesString(br, 40); item.typeCode = GetBytesString(br, 40); item.typeCount = br.ReadInt32(); items.Add(item); } for (int i = 0; i < size; i++) { DataRow r = result.NewRow(); r[0] = items[i].type; r[1] = items[i].typeCode; r[2] = items[i].typeCount; result.Rows.Add(r); } } } } } else if (retOutput.itemid == SDATA_TYPE_FUNDCOMPCODE) { // Generate return table. result.Columns.Add("pulishcode"); result.Columns.Add("compcode"); if (retOutput.ptr != null) { List <sDMFundCompcode> items = new List <sDMFundCompcode>(); using (MemoryStream ms = new MemoryStream(retOutput.ptr)) { using (BinaryReader br = new BinaryReader(ms)) { int size = retOutput.size; for (int i = 0; i < size; i++) { sDMFundCompcode item = new sDMFundCompcode(); item.pulishcode = GetBytesString(br, 50); item.compcode = GetBytesString(br, 10); items.Add(item); } for (int i = 0; i < size; i++) { DataRow r = result.NewRow(); r[0] = items[i].pulishcode; r[1] = items[i].compcode; result.Rows.Add(r); } } } } } else if (retOutput.itemid == SDATA_TYPE_STATE) { result.Columns.Add("nversion"); result.Columns.Add("cversion"); result.Columns.Add("nper"); if (retOutput.ptr != null) { using (MemoryStream ms = new MemoryStream(retOutput.ptr)) { using (BinaryReader br = new BinaryReader(ms)) { DataRow r = result.NewRow(); r[0] = br.ReadInt32(); r[1] = br.ReadInt32(); r[2] = br.ReadInt32(); result.Rows.Add(r); } } } } return(result); }