// 保存 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)); } }