private List <MissionText> GetMissionTexts(string path) { var missionTexts = new List <MissionText>(); var dirInfo = new DirectoryInfo(path); foreach (var file in dirInfo.EnumerateFiles()) { using (var reader = new StreamReader(file.FullName)) { var contents = reader.ReadToEnd().Split(Environment.NewLine); var missionText = MissionText.Parse(file.Name, contents); missionTexts.Add(missionText); } } var campaigns = missionTexts.Where(text => text is MissionTextCampaign).Cast <MissionTextCampaign>().ToList(); var situations = missionTexts.Where(text => text is MissionTextSituation).Cast <MissionTextSituation>().ToList(); foreach (var campaign in campaigns) { var fileNumber = int.Parse(campaign.FileName.Substring(1, 2)); for (var i = fileNumber + 1; i < fileNumber + 9; i++) { var fileName = $"C{i}.TXT"; var file = situations.Single(f => f.FileName == fileName); campaign.Situations.Add(file); missionTexts.Remove(file); } } return(missionTexts); }
static void Main(string[] args) { System.Console.WriteLine("Starting..."); var dirInfo = new DirectoryInfo(@"C:\temp\apache_texts\texts"); var missionTexts = new List <MissionText>(); foreach (var file in dirInfo.EnumerateFiles()) { using (var reader = new StreamReader(file.FullName)) { var contents = reader.ReadToEnd().Split(Environment.NewLine); var missionText = MissionText.Parse(file.Name, contents); missionTexts.Add(missionText); } } missionTexts = missionTexts.Where(t => t.Labels.Any()).ToList(); MissionTextStatistics.PrintStatistics(missionTexts, System.Console.WriteLine); foreach (var missionText in missionTexts) { System.Console.WriteLine(missionText.ToString()); } }