Exemplo n.º 1
0
        //Принимает директории на генератор нот, на запакованный файл, и на хранилище нот, после чего генерирует ноты и добавляет их в указанную папку.
        public static void CreateSheet(string engien_path, string data_path, string sheet_path)
        {
            var work_path   = Regex.Replace(data_path, @"\s", "_");
            var smooth_path = Regex.Replace(work_path, "_", " ");
            var name        = InterfaceFuncs.GetFileName(work_path);

            File.Move(data_path, work_path);
            var sheetMaker = new ProcessStartInfo(engien_path, $"{work_path} {name}");

            sheetMaker.WindowStyle            = ProcessWindowStyle.Hidden;
            sheetMaker.RedirectStandardOutput = true;
            sheetMaker.UseShellExecute        = false;
            sheetMaker.CreateNoWindow         = true;
            Process procCommand = Process.Start(sheetMaker);

            procCommand.WaitForExit();
            foreach (var line in Directory.GetFiles(engien_path.Remove(engien_path.Length - 9, 9) + "bin\\Release"))
            {
                if (Regex.IsMatch(line, ".png"))
                {
                    var dest = $@"{sheet_path}\{Regex.Match(line, @"[\\]+[^\\]+.png").Value.Remove(0, 1)}";
                    try
                    {
                        File.Move(line, dest);
                    }
                    catch (IOException e) { }
                }
            }
            foreach (var line in Directory.GetFiles(sheet_path))
            {
                File.Move(line, Regex.Replace(line, "_", " "));
            }
            File.Move(work_path, smooth_path);
        }
Exemplo n.º 2
0
        //Принимает директории на генератор нот, на хранилище нот, и на хранилище запакованных партитур, после чего генерирует необходимые файлы и добавляет их по указанным директориям
        // возвращает тройку пустых значений, если файл не был выбран
        public static Tuple <String, String, String> GetAndAddData(string engien_path, string sheet_path, string data_storage_path)
        {
            string midi_data_path = null;

            using (var dialog = new OpenFileDialog())
            {
                if (dialog.ShowDialog() == DialogResult.OK)
                {
                    midi_data_path = dialog.FileName;
                    if (!Is_mid(midi_data_path))
                    {
                        //throw new FormatException("Выбранный файл не является midi!");
                        MessageBox.Show("Выбранный файл не является midi!");
                        return(Tuple.Create("", "", ""));
                    }
                    CreateSheet(engien_path, midi_data_path, sheet_path);
                    midi_data_path = Regex.Replace(midi_data_path, "_", " ");
                    try
                    {
                        MIDIFuncs.SaveToData(new MIDINotesData(midi_data_path), $@"{data_storage_path}\{InterfaceFuncs.GetFileName(midi_data_path)}");
                        return(Tuple.Create(GetDate(), GetFileName(midi_data_path), MIDIFuncs.GetDuration(midi_data_path)));
                    }
                    catch (NotEnoughBytesException e)
                    {
                        MessageBox.Show("Входной файл имеет недопустимую для обработки внутреннюю конфигурацию", e.Message, MessageBoxButtons.OK, MessageBoxIcon.Stop);
                    }
                }
            }
            return(Tuple.Create("", "", ""));
        }