Ejemplo n.º 1
0
        public List <SongTxt> GetSongsListTxt(string inputDir, string inputTXTFileName)
        {
            // Input TXT
            var txt = File.ReadAllText(string.Concat(inputDir, inputTXTFileName));

            List <SongTxt> songsListTxt = new List <SongTxt>();

            var songsTxt = Regex.Split(txt, "\r\n\r\n").ToList();

            foreach (string songTxt in songsTxt)
            {
                SongTxt sng = new SongTxt();

                var measuresTxt = songTxt.Split('\n').ToList();
                foreach (string measureTxt in measuresTxt)
                {
                    MeasureTxt msr = new MeasureTxt();
                    msr.EventsTxt = measureTxt.Split(' ').Where(x => x != "" && x != "\r").ToList();
                    sng.Measures.Add(msr);
                }

                songsListTxt.Add(sng);
            }
            return(songsListTxt);
        }
        public List <SongTxt> GetSongsListTxt(string inputDir, string inputTXTFileName)
        {
            // Input TXT
            var txt = File.ReadAllText(string.Concat(inputDir, inputTXTFileName));

            txt = txt.Replace("\r\n", "");

            List <SongTxt> songsListTxt = new List <SongTxt>();

            var songsTxt = Regex.Split(txt, "SongEnd").ToList();

            foreach (string songTxt in songsTxt)
            {
                SongTxt sng = new SongTxt();

                if (songTxt[0] != '\r')
                {
                    var measuresTxt = Regex.Split(songTxt, "MeasureEnd").ToList();
                    foreach (string measureTxt in measuresTxt)
                    {
                        if (measureTxt.Length > 0 && measureTxt[0] != '\r')
                        {
                            var notes = Regex.Split(measureTxt, @"(?=[+,' '])").ToList();
                            notes.RemoveAll(x => (x == "" || x == " "));

                            MeasureTxt msr = new MeasureTxt();
                            msr.EventsTxt = notes.Select(x => x.Replace(" ", "")).Select(x => (x[0] == '+') ? x.Remove(0, 1) + "+" : x).ToList();
                            sng.Measures.Add(msr);
                        }
                    }

                    songsListTxt.Add(sng);
                }
            }
            return(songsListTxt);
        }