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 CardDescription[] Read(string filename, CardDescription[] oricards, ReadProcessChangedInvoker processchanged) { ArrayList cards = new ArrayList(oricards.Length); //连接数据库 SQLiteConnection con = new SQLiteConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=" + filename + ";Persist Security Info=False;"); con.Open(); //读取同名卡数据 Hashtable htCheatCode = new Hashtable(); SQLiteCommand dcc = new SQLiteCommand(@"select t3.*, t4.[alias_list] as alias_list from (select t2.[id],case t2.[alias] when 0 then t2.[id] else t2.[alias] end as alias from datas t2) as t3 left join (select t1.[alias], t1.[alias] || ',' || group_concat(t1.[id]) as alias_list from datas t1 where t1.[alias] <> 0 group by t1.[alias]) as t4 on t3.[alias] = t4.[alias] where not t4.[alias_list] is null", con); SQLiteDataReader creader = null; try { creader = dcc.ExecuteReader(); while (creader.Read()) { string cheatcode = GetFieldString(creader, "id").PadLeft(8, '0'); string cheatcodelist = GetFieldString(creader, "alias_list"); htCheatCode.Add(cheatcode, cheatcodelist); } creader.Close(); } catch { } //读取YGOPRO的效果分类数据 Hashtable htEffectType = new Hashtable(); dcc = new SQLiteCommand("Select * FROM [datas]", con); creader = null; try { creader = dcc.ExecuteReader(); while (creader.Read()) { string cheatcode = GetFieldString(creader, "id").PadLeft(8, '0'); int Effect = int.Parse(creader["category"].ToString()); htEffectType.Add(cheatcode, Effect); } creader.Close(); } catch { } //更新同名卡数据和效果分类数据 for (int i = 0; i < oricards.Length; i++) { CardDescription card = oricards[i]; card.effectType = ""; StringBuilder sb = new StringBuilder(); int categorynum = 0; if (htEffectType.ContainsKey(card.cheatcode)) { categorynum = (int)htEffectType[card.cheatcode]; } if (categorynum != 0) { int index = 0; int num; for (num = 1; index < 0x20; num = num << 1) { if ((num & categorynum) != 0L) { sb.Append(EffectTypeDescription[index]); sb.Append(","); } index++; } if (sb.Length > 0) { sb.Length--; } card.effectType = sb.ToString(); } if (htCheatCode.ContainsKey(card.cheatcode)) { string[] ccl = ((string)htCheatCode[card.cheatcode]).Split(','); sb = new StringBuilder(); for (int j = 0; j < ccl.Length; j++) { sb.Append(ccl[j].PadLeft(8, '0')); sb.Append(','); } sb.Length--; card.aliasList = sb.ToString(); } cards.Add(card); } 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))); }
public virtual CardDescription[] Read(string source, ReadProcessChangedInvoker processchanged) { return(new CardDescription[] { }); }