public CardDescription[] Read(Lucene.Net.Store.Directory dir, ReadProcessChangedInvoker processchanged) { ArrayList cards = new ArrayList(MinCapacity); Query query = new MatchAllDocsQuery(); Searcher searcher = new IndexSearcher(dir, true); TopDocs td = searcher.Search(query, null, searcher.MaxDoc()); ScoreDoc[] docs = td.scoreDocs; int length = docs.Length; for (int i = 0; i < length; i++) { Document doc = searcher.Doc(docs[i].doc); cards.Add(ParseCard(doc)); if (processchanged != null) { processchanged.Invoke(length, i + 1); } } searcher.Close(); return((CardDescription[])cards.ToArray(typeof(CardDescription))); }
public override CardDescription[] Read(string filename, ReadProcessChangedInvoker processchanged) { if (!File.Exists(filename)) { return(new CardDescription[0]); } int total = File.ReadAllLines(filename).Length; StreamReader sr = null; ArrayList cards = new ArrayList(MinCapacity); sr = new StreamReader(filename, Encoding.GetEncoding("GB2312")); int i = 0; while (!sr.EndOfStream) { string s = sr.ReadLine(); cards.Add(ParseCard(s)); i++; if (processchanged != null) { processchanged.Invoke(total, i); } } sr.Close(); return((CardDescription[])cards.ToArray(typeof(CardDescription))); }
public override CardDescription[] Read(string filename, ReadProcessChangedInvoker processchanged) { if (!File.Exists(filename)) { return(new CardDescription[0]); } ArrayList cards = new ArrayList(MinCapacity); Hashtable ht = new Hashtable(MinCapacity); //连接数据库 SQLiteConnection con = new SQLiteConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=" + filename + ";Persist Security Info=False;"); con.Open(); //统计记录数 SQLiteCommand dcc = new SQLiteCommand("Select Count(*) as iCount FROM [Datas]", con); SQLiteDataReader creader = dcc.ExecuteReader(); creader.Read(); int total = int.Parse(creader["iCount"].ToString()); creader.Close(); Hashtable htCheatCode = new Hashtable(); dcc = new SQLiteCommand(@"select * from datas t1 left join texts t2 on t1.id = t2.id ", con); creader = dcc.ExecuteReader(); int i = 0; while (creader.Read()) { CardDescription card = ParseCard(creader, cards); if (!ht.Contains(card.name)) { cards.Add(card); ht.Add(card.name, card); } else { CardDescription cd = (CardDescription)ht[card.name]; cd.cheatcode = cd.cheatcode + "," + card.cheatcode; } i++; processchanged.Invoke(total, i); } creader.Close(); con.Close(); return((CardDescription[])cards.ToArray(typeof(CardDescription))); }
public override CardDescription[] Read(string dirname, ReadProcessChangedInvoker processchanged) { if (dirname == null || dirname.Length <= 0) { return(null); } if (!Directory.Exists(dirname)) { return(null); } if (dirname[dirname.Length - 1] != '\\') { dirname += "\\"; } ArrayList cards = new ArrayList(MinCapacity); Query query = new MatchAllDocsQuery(); Lucene.Net.Store.Directory dir = new Lucene.Net.Store.SimpleFSDirectory(new DirectoryInfo(dirname), new Lucene.Net.Store.SimpleFSLockFactory()); Searcher searcher = new IndexSearcher(dir, true); TopDocs td = searcher.Search(query, null, searcher.MaxDoc()); ScoreDoc[] docs = td.scoreDocs; int length = docs.Length; for (int i = 0; i < length; i++) { Document doc = searcher.Doc(docs[i].doc); cards.Add(ParseCard(doc)); if (processchanged != null) { processchanged.Invoke(length, i + 1); } } searcher.Close(); return((CardDescription[])cards.ToArray(typeof(CardDescription))); }
public override CardDescription[] Read(string filename, ReadProcessChangedInvoker processchanged) { if (!File.Exists(filename)) { return(new CardDescription[0]); } int total = File.ReadAllLines(filename).Length; StreamReader sr = null; ArrayList cards = new ArrayList(MinCapacity); sr = new StreamReader(filename, Encoding.GetEncoding("GB2312")); int i = 0; while (!sr.EndOfStream) { string s = sr.ReadLine().Trim(); if (s != "") { CardDescription card = new CardDescription(); card.name = s.Substring(1, s.Length - 2); card.ID = 60000 + i; card.cardCamp = CardCamp.DIY; card.limit = -5; s = sr.ReadLine().Trim(); cards.Add(ParseCard(card, s)); i++; if (processchanged != null) { processchanged.Invoke(total, i); } } } sr.Close(); return((CardDescription[])cards.ToArray(typeof(CardDescription))); }
public override CardDescription[] Read(string filename, ReadProcessChangedInvoker processchanged) { ArrayList cards = new ArrayList(MinCapacity); //连接数据库 SQLiteConnection con = new SQLiteConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=" + filename + ";Persist Security Info=False;"); con.Open(); //统计记录数 SQLiteCommand dcc = new SQLiteCommand("Select Count(*) as iCount FROM [YGODATA]", con); SQLiteDataReader creader = dcc.ExecuteReader(); creader.Read(); int total = int.Parse(creader["iCount"].ToString()); creader.Close(); //读入卡片数据 //OleDbCommand dc = new OleDbCommand("Select [CardID], [JPCardName], [SCCardName], [ENCardName], [SCCardType], [SCCardRace], [CardBagNum], [SCCardAttribute], [CardStarNum], [SCCardRare], [CardAtk], [CardDef], [SCCardDepict], [CardPass], [CardAdjust], [CardUnion], [SCCardBan] FROM [YGODATA] Order By [CardID]", con); SQLiteCommand dc = new SQLiteCommand("Select * FROM [YGODATA] Order By [id]", con); SQLiteDataReader reader = dc.ExecuteReader(); int i = 0; while (reader.Read()) { cards.Add(ParseCard(reader)); i++; processchanged.Invoke(total, i); } reader.Close(); con.Close(); return((CardDescription[])cards.ToArray(typeof(CardDescription))); }
public override CardDescription[] Read(string filename, ReadProcessChangedInvoker processchanged) { ArrayList cards = new ArrayList(MinCapacity); //连接数据库 OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=" + filename + ";Persist Security Info=False;Jet OLEDB:Database [email protected];"); con.Open(); //读取效果种类列表 ht = new Hashtable(); OleDbCommand dcc = new OleDbCommand("Select * FROM [YGOEFFECT]", con); OleDbDataReader creader = null; try { //如果数据库中存在效果种类列表则优先读取数据库中的记录 creader = dcc.ExecuteReader(); while (creader.Read()) { string id = GetFieldString(creader, "ID"); string s = MyTools.CharacterSet.SBCToDBC(GetFieldString(creader, "EFFECT")); ht.Add(id, s); if (id.Length == 1) { id = "0" + id; ht.Add(id, s); } } creader.Close(); } catch { } //从补丁文件里补充效果种类列表 try { string[] ss = File.ReadAllLines(Global.GetPath() + "Patch\\EffectTypeList.dat", System.Text.Encoding.GetEncoding("gb2312")); foreach (string s in ss) { string[] ss2 = s.Split('\t'); if (!ht.ContainsKey(ss2[0])) { ht.Add(ss2[0], MyTools.CharacterSet.SBCToDBC(ss2[1])); } } } catch { } //统计记录数 dcc = new OleDbCommand("Select Count(*) as iCount FROM [YGODATA]", con); creader = dcc.ExecuteReader(); creader.Read(); int total = int.Parse(creader["iCount"].ToString()); creader.Close(); //读入卡片数据 //OleDbCommand dc = new OleDbCommand("Select [CardID], [JPCardName], [SCCardName], [ENCardName], [SCCardType], [SCCardRace], [CardBagNum], [SCCardAttribute], [CardStarNum], [SCCardRare], [CardAtk], [CardDef], [SCCardDepict], [CardPass], [CardAdjust], [CardUnion], [SCCardBan] FROM [YGODATA] Order By [CardID]", con); OleDbCommand dc = new OleDbCommand("Select * FROM [YGODATA] Order By [CardID]", con); OleDbDataReader reader = dc.ExecuteReader(); reader.Read(); int i = 0; while (reader.Read()) { cards.Add(ParseCard(reader)); i++; processchanged.Invoke(total, i); } reader.Close(); con.Close(); return((CardDescription[])cards.ToArray(typeof(CardDescription))); }