亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? configfile.cs

?? 手機軟件開發..手機軟件開發..手機軟件開發..手機軟件開發..
?? CS
字號:
using System;
using System.IO;
using System.Xml;
using System.Text;

namespace Skyiv.Ben.PushBox.Common
{
  /// <summary>
  /// 管理配置文件: PushBox.cfg
  /// </summary>
  sealed class ConfigFile
  {
    const string ElmRoot = "PushBox"; // 配置文件的根元素
    const string ElmFiles = "files";
    const string ElmOption = "option";
    const string AttrMaxLevelSize = "maxlevelsize";
    const string AttrStepDelay = "stepdelay";
    const string AttrReplayDelay = "replaydelay";
    const string AttrSave = "save";
    const string ElmStack = "stack";
    const string AttrGroup = "group";
    const string AttrLevel = "level";
    const string AttrData = "data";

    int maxLevelSize; // 最大關尺寸(寬度和高度)
    int stepDelay;    // 移動時間間隔(毫秒)
    int replayDelay;  // 回放時間間隔(毫秒)
    bool isSave;      // 是否保護現場
    bool isSaveOem;   // 是否保護現場(第一次讀取時的值)
    int group;        // 當前組數(0起始)
    string[] groups;  // 各組的數據文件主名
    int[] levels;     // 指明各組的當前關數(0起始)
    string steps;     // 工人移動路線,用于程序啟動時恢復現場

    public int MaxLevelSize { get { return maxLevelSize; } set { maxLevelSize = value; } }
    public int StepDelay { get { return stepDelay; } set { stepDelay = value; } }
    public int ReplayDelay { get { return replayDelay; } set { replayDelay = value; } }
    public bool IsSave { get { return isSave; } set { isSave = value; } }
    public int Group { get { return group; } set { group = value; } }
    public string[] Groups { get { return groups; } }
    public int[] Levels { get { return levels; } }
    public string Steps { get { return steps; } }

    /// <summary>
    /// 裝入配置文件
    /// </summary>
    public void LoadConfig()
    {
      maxLevelSize = Pub.DefaultMaxLevelSize;
      stepDelay = Pub.DefaultStepDelay;
      replayDelay = Pub.DefaultReplayDelay;
      isSave = isSaveOem = false;
      group = 0;
      int level = 0;
      XmlDocument doc = new XmlDocument();
      doc.Load(Pub.ConfigFileName);
      XmlElement elm = doc.DocumentElement[ElmOption];
      XmlAttributeCollection attrs;
      XmlAttribute attr;
      if (elm != null)
      {
        attrs = elm.Attributes;
        if ((attr = attrs[AttrMaxLevelSize]) != null)
        {
          try { maxLevelSize = int.Parse(attr.Value); }
          catch { }
          if (maxLevelSize < 1) maxLevelSize = 1;
        }
        if ((attr = attrs[AttrStepDelay]) != null)
        {
          try { stepDelay = int.Parse(attr.Value); }
          catch { }
          if (stepDelay < 0) stepDelay = 0;
          if (stepDelay > Pub.MaxDelay) stepDelay = Pub.MaxDelay;
        }
        if ((attr = attrs[AttrReplayDelay]) != null)
        {
          try { replayDelay = int.Parse(attr.Value); }
          catch { }
          if (replayDelay < 0) replayDelay = 0;
          if (replayDelay > Pub.MaxDelay) replayDelay = Pub.MaxDelay;
        }
        if ((attr = attrs[AttrSave]) != null)
        {
          try { isSave = isSaveOem = bool.Parse(attr.Value); }
          catch { }
        }
        if (isSave && (elm = doc.DocumentElement[ElmStack]) != null)
        {
          attrs = elm.Attributes;
          if ((attr = attrs[AttrGroup]) != null)
          {
            try { group = int.Parse(attr.Value) - 1; }
            catch { }
          }
          if ((attr = attrs[AttrLevel]) != null)
          {
            try { level = int.Parse(attr.Value) - 1; }
            catch { }
          }
          if ((attr = attrs[AttrData]) != null)
          {
            steps = attr.Value;
          }
        }
      }
      elm = doc.DocumentElement[ElmFiles];
      if (elm == null) throw new Exception("配置文件錯:缺少<" + ElmFiles +">元素");
      XmlNodeList elms = elm.ChildNodes;
      if (elms.Count < 1) throw new Exception("配置文件錯:<" + ElmFiles + ">元素必須至少包括一項");
      groups = new string[elms.Count];
      levels = new int[elms.Count];
      for (int i = 0; i < elms.Count; i++) groups[i] = elms[i].InnerText;
      if (group < 0) group = 0;
      if (group > groups.Length - 1) group = groups.Length - 1;
      if (level < 0) level = 0;
      levels[group] = level;
    }

    /// <summary>
    /// 保存組信息到配置文件
    /// </summary>
    /// <param name="groups">組信息</param>
    public void SaveConfig(string[] groups)
    {
      XmlDocument doc = new XmlDocument();
      if (File.Exists(Pub.ConfigFileName)) doc.Load(Pub.ConfigFileName);
      else
      {
        XmlElement root = doc.CreateElement(ElmRoot);
        root.AppendChild(doc.CreateElement(ElmFiles));
        doc.AppendChild(root);
      }
      XmlElement files = (doc.DocumentElement)[ElmFiles];
      if (files == null)
      {
        files = doc.CreateElement(ElmFiles);
        doc.DocumentElement.AppendChild(files);
      }
      files.RemoveAll();
      foreach (string s in groups)
      {
        XmlElement file = doc.CreateElement("file");
        file.InnerText = s;
        files.AppendChild(file);
      }
      SaveStack(doc, 0, 0, "");
      doc.Save(Pub.ConfigFileName);
    }

    /// <summary>
    /// 保存當前選項及當前走法到配置文件
    /// </summary>
    /// <param name="steps">當前走法</param>
    public void SaveConfig(Step[] steps)
    {
      if (!isSave && isSave == isSaveOem) return; // “保護現場”復選框沒有選中,且程序啟動時就沒有選中
      XmlDocument doc = new XmlDocument();
      doc.Load(Pub.ConfigFileName);
      XmlElement elm = doc.DocumentElement[ElmOption];
      if (elm == null)
      {
        elm = doc.CreateElement(ElmOption);
        doc.DocumentElement.AppendChild(elm);
      }
      elm.SetAttribute(AttrSave, isSave.ToString()); // 保存“保護現場”復選框的狀態
      if (isSave) // “保護現場”復選框已選中
      {
        elm.SetAttribute(AttrMaxLevelSize, maxLevelSize.ToString()); // 保存“最大關尺寸”
        elm.SetAttribute(AttrStepDelay, stepDelay.ToString()); // 保存“移動速度”
        elm.SetAttribute(AttrReplayDelay, replayDelay.ToString()); // 保存“回放速度”
        SaveStack(doc, group, levels[group], Pub.ToString(steps)); // 保存當前組數、當前關數和當前走法
      }
      doc.Save(Pub.ConfigFileName);
    }

    /// <summary>
    /// 保存當前組數、當前關數和當前走法到配置文件
    /// </summary>
    /// <param name="doc">配置文件</param>
    /// <param name="group">當前組數</param>
    /// <param name="level">當前關數</param>
    /// <param name="steps">當前走法</param>
    void SaveStack(XmlDocument doc, int group, int level, string steps)
    {
      XmlElement elm = doc.DocumentElement[ElmStack];
      if (elm == null)
      {
        elm = doc.CreateElement(ElmStack);
        doc.DocumentElement.AppendChild(elm);
      }
      elm.SetAttribute(AttrGroup, (group + 1).ToString()); // 保存當前組數
      elm.SetAttribute(AttrLevel, (level + 1).ToString()); // 保存當前關數
      elm.SetAttribute(AttrData, steps); // 保存當前走法
    }
  }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品久久一二三区| 国产清纯美女被跳蛋高潮一区二区久久w | 另类小说一区二区三区| 中文字幕亚洲综合久久菠萝蜜| 日韩欧美国产一区二区在线播放| 在线观看国产日韩| 在线观看亚洲专区| 欧美亚洲高清一区| 91精品国产欧美一区二区成人| 欧美精品一级二级三级| 制服视频三区第一页精品| 9191久久久久久久久久久| 欧美精品乱码久久久久久| 91精品国产综合久久精品| 欧美日韩的一区二区| 91麻豆精品91久久久久久清纯| 91精品国产美女浴室洗澡无遮挡| 91麻豆精品国产91久久久资源速度| 欧美军同video69gay| 正在播放一区二区| 国产日产欧美一区二区视频| 中文字幕视频一区二区三区久| 亚洲精品视频在线观看免费| 亚洲成av人片一区二区三区| 青娱乐精品在线视频| 国产一区二区中文字幕| 99久久精品免费| 欧美日韩国产综合一区二区| 国产成人精品亚洲777人妖| 欧美国产禁国产网站cc| 亚洲最大成人网4388xx| 麻豆精品一区二区三区| 成人免费视频网站在线观看| 欧洲一区在线电影| 欧美一级国产精品| 中文字幕日韩欧美一区二区三区| 亚洲自拍另类综合| 国产一区二区福利| 欧美性大战久久| 欧美国产欧美综合| 日本一不卡视频| 91色视频在线| 欧美精品一区二区三区久久久| 亚洲日本青草视频在线怡红院| 日韩电影在线观看电影| 91视视频在线观看入口直接观看www| 欧美日韩一区三区| 国产精品欧美一区二区三区| 日韩国产成人精品| 91视频观看视频| 久久人人97超碰com| 亚洲成a人v欧美综合天堂 | 亚洲国产精品激情在线观看| 亚洲第一搞黄网站| 9色porny自拍视频一区二区| 日韩欧美国产一区二区三区| 亚洲已满18点击进入久久| 国产黄色精品视频| 精品国产乱码久久久久久图片| 一区二区三区视频在线看| 成人性生交大片免费看视频在线 | 亚洲黄色av一区| 成人h动漫精品| 欧美精品一区二区三区在线播放 | 日韩欧美一二区| 视频一区视频二区中文| 91香蕉视频污| 国产精品网站一区| 国产.精品.日韩.另类.中文.在线.播放| 7777精品伊人久久久大香线蕉的 | 日日噜噜夜夜狠狠视频欧美人| 91性感美女视频| 亚洲欧洲在线观看av| 国产成人精品免费| 中文字幕免费一区| 国产成人aaa| 国产精品每日更新| 99久久精品久久久久久清纯| 椎名由奈av一区二区三区| 成人国产精品免费网站| 中文字幕一区二区三区在线不卡 | 国产成人午夜视频| 国产日韩欧美精品综合| 国产a视频精品免费观看| 亚洲国产精品av| 福利电影一区二区| 国产精品女上位| 91传媒视频在线播放| 亚洲国产欧美一区二区三区丁香婷| 欧美三级日韩三级| 另类小说视频一区二区| 精品第一国产综合精品aⅴ| 国产成人在线电影| 亚洲美女区一区| 在线不卡一区二区| 国产在线视视频有精品| 国产精品网友自拍| 91成人在线免费观看| 免费看精品久久片| 久久精品一区蜜桃臀影院| 99久久免费视频.com| 一区二区三区美女| 91精品国产高清一区二区三区蜜臀 | 一区二区久久久久| 欧美电影免费观看高清完整版| 国产乱码精品一区二区三| **网站欧美大片在线观看| 5566中文字幕一区二区电影| 极品少妇xxxx精品少妇偷拍| 亚洲欧美在线另类| 欧美精品乱码久久久久久按摩| 国产福利精品一区二区| 性做久久久久久久久| 国产日产欧美一区二区视频| 欧美视频日韩视频| 国产成人免费视频网站| 亚洲综合色自拍一区| 国产欧美日韩综合| 在线不卡一区二区| 色婷婷综合视频在线观看| 激情国产一区二区| 亚洲一区二区视频在线| 久久精品无码一区二区三区| 欧美日韩免费电影| 99国产精品久久久久| 久久成人免费电影| 午夜一区二区三区视频| 国产精品国产自产拍在线| 日韩精品一区二区三区在线观看| 色先锋资源久久综合| 粉嫩高潮美女一区二区三区| 日本系列欧美系列| 亚洲国产精品天堂| 《视频一区视频二区| 国产亚洲精品bt天堂精选| 日韩小视频在线观看专区| 欧美系列一区二区| 色婷婷av一区二区三区之一色屋| 国产激情视频一区二区三区欧美| 另类小说图片综合网| 麻豆91在线播放免费| 日韩和欧美一区二区三区| 亚洲成精国产精品女| 一区二区三区国产精华| 亚洲欧美日韩国产综合在线| 国产精品美女久久久久aⅴ| 国产亚洲欧美日韩俺去了| 欧美大肚乱孕交hd孕妇| 91精品久久久久久久91蜜桃| 欧美色爱综合网| 欧美午夜在线一二页| 欧美三级中文字幕在线观看| 在线国产电影不卡| 欧美性生活久久| 精品视频一区 二区 三区| 欧美四级电影在线观看| 欧美日产国产精品| 日韩一区二区在线免费观看| 欧美一区二区免费| 精品999在线播放| 国产日韩精品一区| 亚洲欧洲国产日韩| 亚洲曰韩产成在线| 日韩专区中文字幕一区二区| 日韩不卡在线观看日韩不卡视频| 蜜桃在线一区二区三区| 精品一区精品二区高清| 国产精品白丝av| av不卡免费在线观看| 色婷婷一区二区| 制服丝袜中文字幕一区| 日韩视频永久免费| 欧美经典一区二区三区| 日本一区二区电影| 亚洲免费观看在线观看| 视频一区中文字幕国产| 国产主播一区二区| 色综合久久久久网| 欧美日韩久久不卡| 精品国内二区三区| 国产精品乱码一区二三区小蝌蚪| 一区二区三区在线视频播放| 午夜电影一区二区三区| 美国毛片一区二区| 99国产精品久久| 日韩视频免费观看高清完整版在线观看| 久久亚洲精品小早川怜子| 中文字幕中文乱码欧美一区二区| 亚洲成人动漫av| 粉嫩一区二区三区性色av| 欧美精品久久99| 中文字幕中文字幕在线一区| 丝袜亚洲另类欧美| 99免费精品在线观看| 精品免费国产二区三区| 亚洲日本在线视频观看| 激情伊人五月天久久综合| 欧美视频在线一区| 国产精品毛片大码女人| 久久精品99久久久|