Пример #1
0
        // 保存
        public void Save(String nameTag, ListVal listVal)
        {
            // Ver5.0.1 デバッグファイルに対象のValListを書き込む
            for (var i = 0; i < 2; i++)
            {
                var target   = (i == 0) ? _fileIni : _fileTxt;
                var isSecret = i != 0;

                // 対象外のネームスペース行を読み込む
                var lines = new List <string>();
                if (File.Exists(target))
                {
                    foreach (var s in File.ReadAllLines(target, Encoding.GetEncoding(932)))
                    {
                        LineObject o;
                        try{
                            o = ReadLine(s);
                            // nameTagが違う場合、listに追加
                            if (o.NameTag != nameTag)
                            {
                                //Ver5.8.4 Ver5.7.xの設定を排除する
                                var index = o.NameTag.IndexOf("Server");
                                if (index != -1 && index == o.NameTag.Length - 6)
                                {
                                    // ~~Serverの設定を削除
                                }
                                else
                                {
                                    lines.Add(s);
                                }
                            }
                        }catch {
                            //TODO エラー処理未処理
                        }
                    }
                }
                // 対象のValListを書き込む
                //foreach (var o in listVal.GetList(null)){
                foreach (var o in listVal.GetSaveList(null))
                {
                    // nullで初期化され、実行中に一度も設定されていない値は、保存の対象外となる
                    //if (o.Value == null){
                    //    continue;
                    //}

                    // データ保存の必要のない型は省略する(下位互換のため)
                    var ctrlType = o.OneCtrl.GetCtrlType();
                    if (ctrlType == CtrlType.TabPage || ctrlType == CtrlType.Group || ctrlType == CtrlType.Label)
                    {
                        continue;
                    }

                    var ctrlStr = CtrlType2Str(ctrlType);
                    lines.Add(string.Format("{0}={1}\b{2}={3}", ctrlStr, nameTag, o.Name, o.ToReg(isSecret)));
                }
                File.WriteAllLines(target, lines.ToArray(), Encoding.GetEncoding(932));
            }
        }