Пример #1
0
        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"];
            }
        }
Пример #2
0
 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);
     }
 }
Пример #3
0
        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);
        }