📄 hostlist.cs
字号:
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using System.Xml;
using System.IO;
namespace Th.ChatLib
{
public class HostInfo
{
public string HostName;
public string HostIP;
public string NickName;
public bool Online;
public void ReadXml(XmlTextReader reader)
{
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.EndElement && reader.Name == "Host") return;
if (reader.NodeType != XmlNodeType.Element) continue;
switch (reader.Name)
{
case "HostName": HostName = reader.ReadString(); break;
case "HostIP": HostIP = reader.ReadString(); break;
case "NickName": NickName = reader.ReadString(); break;
}
}
}
public void WriteXml(XmlTextWriter writer)
{
writer.WriteStartElement("Host");
writer.WriteElementString("HostName", HostName);
writer.WriteElementString("HostIP", HostIP);
writer.WriteElementString("NickName", NickName);
writer.WriteEndElement();
}
}
public class HostList : CollectionBase
{
public HostInfo this[int index]
{
get { return (HostInfo)List[index]; }
set { List[index] = value; }
}
private string m_HostFilePath = string.Empty;
public HostList(string appPath)
{
m_HostFilePath = Path.Combine(appPath, "host.db");
ReadXml();
}
public HostInfo GetHostInfoByIP(string ip)
{
foreach (HostInfo host in List)
{
if (host.HostIP == ip) return host;
}
return null;
}
private void ReadXml()
{
List.Clear();
if (File.Exists(m_HostFilePath))
{
XmlTextReader reader = new XmlTextReader(m_HostFilePath);
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element && reader.Name == "Host")
{
HostInfo host = new HostInfo();
host.ReadXml(reader);
List.Add(host);
}
}
reader.Close();
}
}
public void WriteXml()
{
XmlTextWriter writer = new XmlTextWriter(m_HostFilePath, Encoding.Unicode);
writer.Formatting = Formatting.Indented;
writer.WriteStartDocument(false);
writer.WriteDocType("HostList", null, null, null);
writer.WriteStartElement("HostList");
foreach (HostInfo host in List)
{
host.WriteXml(writer);
}
writer.WriteEndElement();
writer.Flush();
writer.Close();
}
public void Add(HostInfo host)
{
List.Add(host);
}
public void Remove(HostInfo host)
{
List.Remove(host);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -