private void bAdd_Click(object sender, EventArgs e) { if (tCode.Text == "" || tName.Text == "" || comboBox2.SelectedIndex == -1 || tIp.Text == "") { MessageBox.Show("没有填写完整!"); return; } CodeInfo codeinfo = new CodeInfo(); codeinfo.code = tCode.Text; codeinfo.name = tName.Text; codeinfo.subtype = comboBox2.Items[comboBox2.SelectedIndex].ToString(); //要注意的是如果新加了ip地址进来,必须先建立连接才能订阅合约,否则崩掉 if (listIp[comboBox2.Text] == "") { string sub = "newip#"; sub = sub + comboBox2.Text + "#" + tIp.Text + "#"; init(sub); } else if (listIp[comboBox2.Text] != tIp.Text) { //MessageBox.Show("行情连接地址更新需重启程序!"); string sub = "newip#"; sub = sub + comboBox2.Text + "#" + tIp.Text + "#"; init(sub); } listIp[comboBox2.Text] = tIp.Text; listCodeInfo.Add(codeinfo); InsertCode(codeinfo); }
public string LoadAccountConfig() { //开始需要清空list FormSet.listAccount.Clear(); string fileConfig = FormSet.getfilename(); if (fileConfig == "") { MessageBox.Show("account.xml配置文件不存在,无法登录!"); return(""); } XmlDocument doc = new XmlDocument(); doc.Load(fileConfig); XmlNode root = doc.LastChild; XmlNodeList list = root.ChildNodes; for (int i = 0; i < list.Count; i++) { XmlNodeList sublist = list[i].ChildNodes; AccountInfo data = new AccountInfo(); data.account = sublist[0].InnerText.Trim(); data.pwd = sublist[1].InnerText.Trim(); data.serverip = sublist[2].InnerText.Trim(); data.apitype = sublist[3].InnerText.Trim(); data.brokeid = sublist[4].InnerText.Trim(); FormSet.listAccount.Add(data); } //加载合约 FormSet.listCodeInfo.Clear(); FormSet.listIp.Clear(); fileConfig = FormSet.getcodefilename(); if (fileConfig == "") { MessageBox.Show("code.xml配置文件不存在,无法连接行情!"); return(""); } doc.Load(fileConfig); list = doc.SelectNodes("/ranges/codeinfo"); //list = doc.SelectSingleNode("/ranges").ChildNodes; for (int i = 0; i < list.Count; i++) { XmlNodeList sublist = list[i].ChildNodes; CodeInfo data = new CodeInfo(); string s = sublist[0].Name; data.code = sublist[0].InnerText.Trim(); data.name = sublist[1].InnerText.Trim(); data.subtype = sublist[2].InnerText.Trim(); FormSet.listCodeInfo.Add(data); } list = doc.SelectNodes("/ranges/ip"); for (int i = 0; i < list.Count; i++) { XmlNodeList sublist = list[i].ChildNodes; foreach (XmlNode xn in sublist) { if (xn.Name == "ufx") { FormSet.listIp["ufx"] = xn.InnerText.Trim(); } else if (xn.Name == "ctp") { FormSet.listIp["ctp"] = xn.InnerText.Trim(); } } } list = doc.SelectNodes("/ranges/port"); for (int i = 0; i < list.Count; i++) { XmlNodeList sublist = list[i].ChildNodes; FormSet.port = sublist[0].InnerText.Trim(); } if (FormSet.listIp.Count == 0) { FormSet.listIp["ufx"] = ""; FormSet.listIp["ctp"] = ""; MessageBox.Show("尚未配置行情地址!"); } return("ok"); }
//保存合约 public void SaveCodeInfo() { string fileConfig = getcodefilename(); XmlDocument doc = new XmlDocument(); doc.Load(fileConfig); XmlNode root = doc.LastChild; XmlNodeList list = root.ChildNodes; root.RemoveAll(); for (int i = 0; i < listCodeInfo.Count; i++) { CodeInfo codeinfo = listCodeInfo[i]; XmlElement elemChild = doc.CreateElement("codeinfo"); root.AppendChild(elemChild); XmlElement elem = doc.CreateElement("code"); elem.InnerText = codeinfo.code; elemChild.AppendChild(elem); ////////////////////////////////// elem = doc.CreateElement("name"); elem.InnerText = codeinfo.name; elemChild.AppendChild(elem); ///////////////////////////////// elem = doc.CreateElement("subtype"); elem.InnerText = codeinfo.subtype; elemChild.AppendChild(elem); } //只有一个ip XmlElement elemChildip = doc.CreateElement("ip"); root.AppendChild(elemChildip); if (listIp.ContainsKey("ufx")) { ////////////////////////////////// XmlElement e_ufx = doc.CreateElement("ufx"); e_ufx.InnerText = listIp["ufx"]; elemChildip.AppendChild(e_ufx); } if (listIp.ContainsKey("ctp")) { ////////////////////////////////// XmlElement e_ctp = doc.CreateElement("ctp"); e_ctp.InnerText = listIp["ctp"]; elemChildip.AppendChild(e_ctp); } doc.Save(fileConfig); }
public void LoadConfig() { //开始需要清空list listAccount.Clear(); fsr.clearFundaccount(); string fileConfig = getfilename(); XmlDocument doc = new XmlDocument(); doc.Load(fileConfig); XmlNode root = doc.LastChild; XmlNodeList list = root.ChildNodes; for (int i = 0; i < list.Count; i++) { XmlNodeList sublist = list[i].ChildNodes; AccountInfo data = new AccountInfo(); data.account = sublist[0].InnerText.Trim(); cbbAccount.Items.Add(data.account); //加到checkedlist里面 fsr.addFundaccount(data.account); data.pwd = sublist[1].InnerText.Trim(); data.serverip = sublist[2].InnerText.Trim(); data.apitype = sublist[3].InnerText.Trim(); data.brokeid = sublist[4].InnerText.Trim(); InsertList(data); listAccount.Add(data); } //加载合约 FormSet.listCodeInfo.Clear(); listIp.Clear(); fileConfig = FormSet.getcodefilename(); doc.Load(fileConfig); list = doc.SelectNodes("/ranges/codeinfo"); for (int i = 0; i < list.Count; i++) { XmlNodeList sublist = list[i].ChildNodes; CodeInfo data = new CodeInfo(); data.code = sublist[0].InnerText.Trim(); data.name = sublist[1].InnerText.Trim(); data.subtype = sublist[2].InnerText.Trim(); FormSet.listCodeInfo.Add(data); InsertCode(data); } list = doc.SelectNodes("/ranges/ip"); for (int i = 0; i < list.Count; i++) { XmlNodeList sublist = list[i].ChildNodes; foreach (XmlNode xn in sublist) { if (xn.Name == "ufx") { FormSet.listIp["ufx"] = xn.InnerText.Trim(); } else if (xn.Name == "ctp") { FormSet.listIp["ctp"] = xn.InnerText.Trim(); } } } if (FormSet.listIp.Count == 0) { FormSet.listIp["ufx"] = ""; FormSet.listIp["ctp"] = ""; } }