From c21f4376d366d7a930bdbc850c659cd08e40e176 Mon Sep 17 00:00:00 2001 From: emkael Date: Mon, 23 May 2016 22:06:28 +0200 Subject: * reading file paths from command line arguments --- Program.cs | 100 ++++++++++++++++++++++++++++++++++++------------------------- 1 file changed, 59 insertions(+), 41 deletions(-) diff --git a/Program.cs b/Program.cs index 5c7c912..5611842 100644 --- a/Program.cs +++ b/Program.cs @@ -2,65 +2,83 @@ using System.Collections.Generic; using System.Text; using System.Windows.Forms; +using System.IO; namespace BCDD { class Program { + static List getFiles(string[] args) + { + List filenames = new List(); + foreach (String arg in args) + { + if (File.Exists(arg)) + { + filenames.Add(arg); + } + } + if (filenames.Count == 0) + { + OpenFileDialog fd = new OpenFileDialog(); + fd.Multiselect = true; + if (fd.ShowDialog() == DialogResult.OK) + { + filenames = new List(fd.FileNames); + } + } + return filenames; + } + [STAThread] static void Main(string[] args) { - OpenFileDialog fd = new OpenFileDialog(); - fd.Multiselect = true; - if (fd.ShowDialog() == DialogResult.OK) + foreach (String filename in Program.getFiles(args)) { - foreach (String filename in fd.FileNames) + Console.WriteLine("Analyzing " + filename); + PBNFile file = new PBNFile(filename); + foreach (PBNBoard board in file.Boards) { - Console.WriteLine("Analyzing " + filename); - PBNFile file = new PBNFile(filename); - foreach (PBNBoard board in file.Boards) + DDTable table = new DDTable(board); + String boardNo; + try { - DDTable table = new DDTable(board); - String boardNo; - try - { - boardNo = board.GetNumber(); - } - catch (FieldNotFoundException) - { - boardNo = "?"; - } - try + boardNo = board.GetNumber(); + } + catch (FieldNotFoundException) + { + boardNo = "?"; + } + try + { + int[,] ddTable = table.GetDDTable(); + if (ddTable != null) { - int[,] ddTable = table.GetDDTable(); - if (ddTable != null) - { - Console.WriteLine("Board " + boardNo); - DDTable.PrintTable(ddTable); - ParScore par = new ParScore(board); - ParContract contract = par.GetParContract(ddTable); - Console.WriteLine(contract); - Console.WriteLine(); - board.SaveDDTable(ddTable); - board.SaveParContract(contract); - file.WriteBoard(board); - } - else - { - Console.WriteLine("ERROR: unable to determine DD table for board " + boardNo); - } + Console.WriteLine("Board " + boardNo); + DDTable.PrintTable(ddTable); + ParScore par = new ParScore(board); + ParContract contract = par.GetParContract(ddTable); + Console.WriteLine(contract); + Console.WriteLine(); + board.SaveDDTable(ddTable); + board.SaveParContract(contract); + file.WriteBoard(board); } - catch (Exception e) + else { - Console.WriteLine(e.Message); - Console.WriteLine(e.StackTrace); + Console.WriteLine("ERROR: unable to determine DD table for board " + boardNo); } } - file.Save(); + catch (Exception e) + { + Console.WriteLine(e.Message); + Console.WriteLine(e.StackTrace); + } } - Console.WriteLine("Press any key to continue..."); - Console.ReadLine(); + file.Save(); } + Console.WriteLine("Press any key to continue..."); + Console.ReadLine(); } } } -- cgit v1.2.3