// プログラム実行開始時に最初に行う処理 public static void Initialize() { baseDir = Path.GetDirectoryName(AppDomain.CurrentDomain.BaseDirectory) + "\\"; workDir = baseDir + "work\\"; if (!Directory.Exists(workDir)) { Directory.CreateDirectory(workDir); } settingName = baseDir + "setting.xml"; settings = new GGFrontSettings(); currentProject = new GGFrontProject(); errorList = new GHDLErrorList(); if (!settings.Load()) { //Warn("初めにGHDLとGTKWaveのファイルを指定してください."); settings.guessGHDLPath = true; settings.guessGTKWavePath = true; } }
public bool Load() { try { XmlSerializer serial = new XmlSerializer(typeof(GGFrontSettings)); FileStream fs = new FileStream(Util.settingName, FileMode.Open); GGFrontSettings newSettings = (GGFrontSettings)serial.Deserialize(fs); double version = Double.Parse(newSettings.GGFrontVersion); if (version < 0.3) { guessGHDLPath = false; guessGTKWavePath = false; } else { guessGHDLPath = newSettings.guessGHDLPath; guessGTKWavePath = newSettings.guessGTKWavePath; } if (version < 0.4) { simLimit = simLimitDefault; procLimit = procLimitDefault; } else { simLimit = newSettings.simLimit; procLimit = newSettings.procLimit; } if (version < 0.5) { errorWindowHeight = errorWindowHeightDefault; errorWindowWidth = errorWindowWidthDefault; errorWindowTextSize = errorWindowTextSizeDefault; } else { errorWindowHeight = newSettings.errorWindowHeight; errorWindowWidth = newSettings.errorWindowWidth; errorWindowTextSize = newSettings.errorWindowTextSize; } GHDLPath = newSettings.GHDLPath; GTKWavePath = newSettings.GTKWavePath; fs.Close(); } catch (FileNotFoundException) { Reset(); return(false); } catch (InvalidOperationException) { Util.Warn("設定ファイルのロードに失敗しました.形式が正しくありません."); Reset(); return(false); } catch (Exception ex) { Util.Warn("設定ファイルのロード中にエラーが発生しました.\n" + "設定ファイルを保存しません.\n\nエラー内容: " + ex.Message); Reset(); disableSaveSettings = true; return(false); } return(true); }