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); }