public CardReader(DataRow dataRowCardsetRange) { DataTable ranges = dataRowCardsetRange.Table; bool double_action = (dataRowCardsetRange["double_action"] == DBNull.Value)?false:Convert.ToBoolean(dataRowCardsetRange["double_action"]); OpenSkieScheduler3.ScheduleDataSet schedule = ranges.DataSet as OpenSkieScheduler3.ScheduleDataSet; DataRow Cardset = dataRowCardsetRange.GetParentRow(CardsetRange.CardsetInfoRelationName); String default_cardset_path = Options.File("cardset_files.ini")["CONFIG"]["Default Cardset Path", "f:\\ftn3000\\data\\cards"].Value; readers.Add(this); this.Name = dataRowCardsetRange[OpenSkieScheduler3.BingoGameDefs.CardsetRange.NameColumn].ToString(); this.FileName = Cardset["name"] as String; cf = new CardFactory(); if (!System.IO.File.Exists(FileName)) { FileName = SwapPath(FileName, default_cardset_path); if (!System.IO.File.Exists(FileName)) { if (FileName == "") { return; } else { MessageBox.Show("Cardset " + FileName + " does not exist."); } throw new Exception("File not found"); } } { fs = new FileStream(FileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); br = new BinaryReader(fs); if (double_action) { card_stock = new byte[(Convert.ToInt32(dataRowCardsetRange["end"]) - (offset = (Convert.ToInt32(dataRowCardsetRange["start"]) - 1))) * 2 , 5, 5]; } else { card_stock = new byte[(Convert.ToInt32(dataRowCardsetRange["end"]) - (offset = (Convert.ToInt32(dataRowCardsetRange["start"]) - 1))) , 5, 5]; } offset += (Int32)dataRowCardsetRange["offset"]; } }
public CardReader(String filename) { readers.Add(this); this.Name = filename; cf = new CardFactory(); if (System.IO.File.Exists(filename)) { fs = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); br = new BinaryReader(fs); card_stock = new byte[fs.Length / 12, 5, 5]; // cards are delay read now... on request, checked if null, position seeked and read. } else { throw new FileNotFoundException("Card File Not Found", filename); } }
const bool offsetByOne = false; // used if cardset data is 0-E instead of 1-F public static CardData GetCardReader(DataRow dataRowCardsetRange) { /// dataRowCardsetRange[OpenSkieScheduler.BingoGameDefs.CardsetRange.NameColumn].ToString(); DataRow dataRowCardset = dataRowCardsetRange.GetParentRow("cardset_has_cardset_range"); //OpenSkieScheduler.BingoGameDefs.CardsetInfo.NameColumn (friendly name) String find_name = dataRowCardset["name"].ToString(); //foreach( CardData reader in readers ) { //if( reader.file_name == find_name ) //return reader; } if (find_name == "") { CardData tmp = new CardFactory(); readers.Add(tmp); return(tmp); } CardData result = new CardReader(dataRowCardsetRange); readers.Add(result); return(result); }