中国开发网: 论坛: .NET/C#: 贴子 498719
Miracle: 测试
普通文本

孙存周,讳焕文,号二可,1893年出生在河北完县东任家疃。父亲是武学大宗师、时誉“虎头少保天下第一手”的孙禄堂。1909年开始正式随父习武,苦修三年,日以继夜,得孙氏形意、八卦大要。遂访京津及燕赵等地名家切磋技艺,名声鹊起。1912年,孙存周19岁时与钱氏完婚,不久只身南下,游历各地,遍访名师、高手,比较武艺,难遇其匹。在沪宁杭一带负有盛誉,武林中之奇人异士如秦鹤歧、管子彰等皆与孙存周交厚,盛赞有加。
1918年,孙存周返回北京,对父亲谈及其游历见闻,孙禄堂先生训曰:“凡求道艺者务要虚心 虚心则心明,心明则性真。有若无,实若虚,远浮名。凡遇有一技之长者,无论其功夫高低皆要拜为师友,虚心求教,海纳百川,故其深不可测。艺无止境,岂有至高至妙之说?”在父亲的教诲下,孙存周的拳术境界又上了一层。通过每日与父亲试手,更知自己的功夫仍旧相差甚远,遂留在北京年余继续深造家学。1919年父亲入住总统府后,孙存周再次返回南方,时其三弟务滋也已在太仓中学任教。这样兄弟二人每月相会一次,共同研究孙氏拳学。相互启发,技艺更加精纯。

代码高亮

[code=c#]using System; using System.Threading; using System.Collections; using Bullseye.Interface; using System.Configuration; using Microsoft.ApplicationBlocks.Data; using System.Data; using System.Data.SqlClient; using Bullseye.Logging; namespace Bullseye.Plugin.BadWordsCheck { /// /// Summary description for BadWordsChecker. /// public class BadWordsChecker: IBadWordsCheck { public BadWordsChecker() { // // TODO: Add constructor logic here // } private static readonly string sp_LoadAllCellPhoneDomain = "LoadAllCellPhoneDomain"; private static readonly string sp_LoadAllBannedPhones = "LoadAllBannedPhones"; private static readonly string sp_LoadAllBannedEmailUsers = "LoadAllBannedEmailUsers"; private static readonly string sp_LoadAllBannedEmails = "LoadAllBannedEmails"; private static readonly string sp_LoadAllBadWords = "LoadAllBadWords"; private static readonly string sp_LoadAllApprovedWords = "LoadAllApprovedWords"; private static string ConnectionString { get { return ConfigurationSettings.AppSettings["MemberFilteringDBConnectionString"]; } } static ArrayList BadWords = new ArrayList(); static Hashtable ApprovedWords = new Hashtable(); static Hashtable BannedEmails = new Hashtable(); static Hashtable BannedEmailUsers = new Hashtable(); static Hashtable BannedCellPhoneDomains = new Hashtable(); static Hashtable BannedPhones = new Hashtable(); static ReaderWriterLock rwl = new ReaderWriterLock(); static DateTime LastLoadTime = DateTime.MinValue; static bool Loaded = false; /// /// Reload the lists every 30 minutes /// static void Load() { if(DateTime.Now - LastLoadTime > new TimeSpan(0, 0, 30, 0, 0) || !Loaded) { try { rwl.AcquireWriterLock(3000); if(DateTime.Now - LastLoadTime <= new TimeSpan(0, 0, 30, 0, 0) && Loaded) return; try { using(SqlConnection conn = new SqlConnection(ConnectionString)) { conn.Open(); ArrayList al = new ArrayList(); SqlDataReader sdr = SqlHelper.ExecuteReader(conn, CommandType.StoredProcedure, sp_LoadAllBadWords); while(sdr.Read()) { al.Add(sdr.GetString(0).Trim().ToLower()); } sdr.Close(); BadWords = al; Hashtable ht = new Hashtable(); sdr = SqlHelper.ExecuteReader(conn, CommandType.StoredProcedure, sp_LoadAllApprovedWords); while(sdr.Read()) { ht[sdr.GetString(0).Trim().ToLower()] = 0; } sdr.Close(); ApprovedWords = ht; ht = new Hashtable(); sdr = SqlHelper.ExecuteReader(conn, CommandType.StoredProcedure, sp_LoadAllBannedEmails); while(sdr.Read()) { ht[sdr.GetString(0).Trim().ToLower()] = 0; } sdr.Close(); BannedEmails = ht; ht = new Hashtable(); sdr = SqlHelper.ExecuteReader(conn, CommandType.StoredProcedure, sp_LoadAllBannedEmailUsers); while(sdr.Read()) { ht[sdr.GetString(0).Trim().ToLower()] = 0; } sdr.Close(); BannedEmailUsers = ht; ht = new Hashtable(); sdr = SqlHelper.ExecuteReader(conn, CommandType.StoredProcedure, sp_LoadAllCellPhoneDomain); while(sdr.Read()) { ht[sdr.GetString(0).Trim().ToLower()] = 0; } sdr.Close(); BannedCellPhoneDomains = ht; ht = new Hashtable(); sdr = SqlHelper.ExecuteReader(conn, CommandType.StoredProcedure, sp_LoadAllBannedPhones); while(sdr.Read()) { ht[sdr.GetString(0).Trim().ToLower()] = 0; } sdr.Close(); BannedPhones = ht; LastLoadTime = DateTime.Now; Loaded = true; conn.Close(); } } catch(SqlException se) { MemberFilteringInitException ex = new MemberFilteringInitException(se.Message); } finally { rwl.ReleaseWriterLock(); } } catch(ApplicationException) { return; } } } #region IBadWordsCheck Members /// /// Check for bad words in the provided arguments. /// /// The first name /// The last name /// Address /// The email address /// Phone number /// True if there is a bad word match, false if no bad word match public bool CheckBadWords(string firstname, string lastname, string address1, string email, string phone) { Load(); // SystemFX.TextLogger.WriteLog(String.Format("Testing bad words: {0}, {1}, {2}, {3}, {4}", firstname, lastname, address1, email, phone)); try { rwl.AcquireReaderLock(100); try { if(CheckBadWords(firstname.Trim().ToLower(), lastname.Trim().ToLower(), address1.Trim().ToLower())) { return true; } if(CheckBadEmail(email.Trim().ToLower())) { return true; } if(CheckBannedPhone(phone.Trim().ToLower())) { return true; } return false; } finally { rwl.ReleaseReaderLock(); } } catch(ApplicationException) { return false; } } #endregion private bool CheckBadWords(string firstname, string lastname, string address1) { return CheckBadWord(firstname) || CheckBadWord(lastname) || CheckBadWord(address1); } private bool CheckBadWord(string word) { if(word == "") return false; if(ApprovedWords.ContainsKey(word)) return false; foreach(string s in BadWords) { if(word.IndexOf(s) >= 0) { return true; } } return false; } private bool CheckBadEmail(string email) { if(email == null || email == string.Empty) return false; if(BannedEmails.ContainsKey(email)) return true; int index = email.IndexOf("@"); if(index <= 0) return true; string emailDomain = email.Substring(index + 1, email.Length - index - 1); if(BannedCellPhoneDomains.ContainsKey(emailDomain)) return true; string emailuser = email.Substring(0, index); if(BannedEmailUsers.ContainsKey(emailuser + "@") || BannedEmailUsers.ContainsKey(emailuser)) return true; return false; } private bool CheckBannedPhone(string phone) { return BannedPhones.ContainsKey(phone); } } } [/code]
夫习拳艺者,对已者十之七八,对人者,仅十之二三耳。拳艺之道,深无止境。得其浅者,一人敌,得其深者,何尝不万人敌耶!
我的Google Picasa相册
我的新BLOG

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录