/// <summary> /// Получить аргументы командной строки для проверки доступности LUA /// </summary> /// <returns>Аргументы командной строки одной строкой</returns> private string GetArguments(string fileName) { string pathToFile = Path.Combine(projectManager.OriginalCMDFilesPath, fileName); string[] arguments = File.ReadAllLines(pathToFile, EncodingDetector.DetectFileEncoding(pathToFile)); return(string.Join(connectCommandsChar, arguments)); }
/// <summary> /// Сохранить количество строк кода main.plua в SVG. /// </summary> /// <param name="folderPath">Путь к каталогу</param> /// <param name="locFilePath">Пусть к файлу, для которого надо /// сохранить LOC</param> private static void SaveLOC(string folderPath, string locFilePath) { const int maxLOCCount = 1000; folderPath += linesOfCodeMainProgramFileName; locFilePath += @"\" + ProjectDescriptionSaver.MainProgramFileName; string[] readedFile = File.ReadAllLines(locFilePath, EncodingDetector.DetectFileEncoding(locFilePath)); int loc = readedFile.Length; string displayingText = $"{loc} строк кода"; string result = MakeStringForWriting(loc, maxLOCCount, displayingText); WriteFile(result, folderPath); }
/// <summary> /// Считывание описания. /// </summary> private int LoadDescriptionFromFile(out string LuaStr, out string errStr, string projectName, string fileName) { LuaStr = ""; errStr = ""; StreamReader sr = null; string path = GetPtusaProjectsPath(projectName) + projectName + fileName; try { if (!File.Exists(path)) { errStr = "Файл описания проекта \"" + path + "\" отсутствует! Создано пустое описание."; Directory.CreateDirectory(Path.GetDirectoryName(path)); File.WriteAllText(path, string.Empty); } } catch (DriveNotFoundException) { errStr = "Укажите правильные настройки каталога!"; return(1); } bool needEncoding = EncodingDetector.MainFilesEncoding == null && fileName.Contains(ProjectDescriptionSaver .MainTechObjectsFileName); if (needEncoding) { EncodingDetector.MainFilesEncoding = EncodingDetector .DetectFileEncoding(path); } sr = new StreamReader(path, EncodingDetector.MainFilesEncoding); LuaStr = sr.ReadToEnd(); sr.Close(); return(0); }
/// <summary> /// Загрузка шаблонов для сохраняемых файлов /// </summary> private static void LoadFilePatterns() { const string mainProgramPatternFileName = "mainPattern.plua"; string pathToSystemFiles = ProjectManager.GetInstance() .SystemFilesPath; string pathToMainPluaFile = Path .Combine(pathToSystemFiles, mainProgramPatternFileName); try { var reader = new StreamReader(pathToMainPluaFile, EncodingDetector.DetectFileEncoding(pathToMainPluaFile)); mainProgramFilePattern = reader.ReadToEnd(); reader.Close(); mainProgramFilePatternIsLoaded = true; } catch { MessageBox.Show($"Не найден шаблон {mainProgramFileName}", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// Сохранить количество строк кода main.plua в SVG. /// </summary> /// <param name="folderPath">Путь к каталогу</param> /// <param name="locFilePath">Пусть к файлу, для которого надо /// сохранить LOC</param> private void SaveLOC(string folderPath, string locFilePath) { const int maxLOCCount = 1000; folderPath += LinesOfCodeMainProgramFileName; locFilePath += @"\" + ProjectDescriptionSaver.MainProgramFileName; int loc = 0; if (File.Exists(locFilePath)) { string[] readedFile = File.ReadAllLines(locFilePath, EncodingDetector.DetectFileEncoding(locFilePath)); loc = readedFile.Length; } string labelName = GenerateNounAfterNumber("строк", loc, "a", "и", string.Empty); string displayingText = $"{loc} {labelName} кода"; string result = MakeStringForWriting(loc, maxLOCCount, displayingText); WriteFile(result, folderPath); }