From 0581c8593e8e1b8f9b3c505b0c0da51f82f93c0d Mon Sep 17 00:00:00 2001 From: emkael Date: Tue, 10 Apr 2018 02:19:58 +0200 Subject: Renaming files to suit Python convention --- pybcdd.cs | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 pybcdd.cs (limited to 'pybcdd.cs') diff --git a/pybcdd.cs b/pybcdd.cs new file mode 100644 index 0000000..ea1eab3 --- /dev/null +++ b/pybcdd.cs @@ -0,0 +1,116 @@ +using System; +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; + fd.Filter = "PBN files (*.pbn)|*.pbn|All files (*.*)|*.*"; + if (fd.ShowDialog() == DialogResult.OK) + { + filenames = new List(fd.FileNames); + } + } + return filenames; + } + + [STAThread] + static void Main(string[] args) + { + List files = Program.getFiles(args); + List errors = new List(); + if (files.Count > 0) + { + foreach (String filename in files) + { + try + { + Console.WriteLine("Analyzing " + filename); + PBNFile file = new PBNFile(filename); + foreach (PBNBoard board in file.Boards) + { + DDTable table = new DDTable(board); + String boardNo; + try + { + boardNo = board.GetNumber(); + } + catch (FieldNotFoundException) + { + boardNo = "?"; + } + try + { + 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 + { + String error = "unable to determine DD table for board " + boardNo; + errors.Add(String.Format("[{0}] {1}", filename, error)); + Console.WriteLine("ERROR: " + error); + } + } + catch (DllNotFoundException) + { + throw; + } + catch (Exception e) + { + errors.Add(String.Format("[{0}:{1}] {2}", filename, boardNo, e.Message)); + Console.WriteLine("ERROR: " + e.Message); + } + } + file.Save(); + } + catch (DllNotFoundException e) + { + errors.Add("libbcalcdds.dll could not be loaded - make sure it's present in application directory!"); + Console.WriteLine("ERROR: " + e.Message); + break; + } + catch (Exception e) + { + errors.Add(e.Message); + Console.WriteLine("ERROR: " + e.Message); + } + } + if (errors.Count > 0) { + Console.WriteLine("Following ERRORs occured:"); + foreach (String error in errors) { + Console.WriteLine(error); + } + Console.WriteLine("Press any key to continue..."); + Console.ReadKey(); + } + } + } + } +} -- cgit v1.2.3