// เมื่อโยนข้อความที่ต้องการ search พร้อมกับค่าบูลลิน false จะสร้างและกำหนดค่าและข้อมูลต่างๆ public void Initialize(string pattern, bool ignoreCase) { // กำหนดค่า ข้อความที่เราต้องการ search ที่ส่งมาในตัวแปร pattern ให้ตัวแปร pattern ที่เป็น static มีค่าเดียวกันด้วย _pattern = pattern; // ส่งค่า false มาภายใน ignoreCase ให้ตัวแปร _ignoreCase ที่เป็น static มีค่าเดียวกันด้วย _ignoreCase = ignoreCase; // (Create multi-stage skip table) เรียก class UnicodeSkipArray // โดยส่งความยาวของ string ของข้อความที่ต้องการ search ไปให้ รีเทินค่ากลับมาเป็น array 2 มิติ _skipArray = new UnicodeSkipArray(_pattern.Length); // ถ้ากำหนดให้ search แบบ non - case sensitive if (_ignoreCase) { // เก็บข้อความจาก pattern ที่เก็บข้อความที่ต้องการ search ไว้ภายในอเรย์ _skipArray // โดยคอนเวิตให้เป็นทั้งตัวใหญ่และตัวเล็ก for (int i = 0; i < _pattern.Length - 1; i++) { _skipArray[Char.ToLower(_pattern[i])] = (byte)(_pattern.Length - i - 1); _skipArray[Char.ToUpper(_pattern[i])] = (byte)(_pattern.Length - i - 1); } } // ถ้ากำหนดให้ search แบบ case sensitive else { // เก็บข้อความจาก pattern ที่เก็บข้อความที่ต้องการ search ไว้ภายในอเรย์ _skipArray // โดยไม่คอนเวิตให้เป็นทั้งตัวใหญ่และตัวเล็ก เก็บข้อความเดิมๆของมัน for (int i = 0; i < _pattern.Length - 1; i++) { _skipArray[_pattern[i]] = (byte)(_pattern.Length - i - 1); } } }
// เมื่อโยนข้อความที่ต้องการ search พร้อมกับค่าบูลลิน false จะสร้างและกำหนดค่าและข้อมูลต่างๆ public void Initialize(string pattern, bool ignoreCase) { // กำหนดค่า ข้อความที่เราต้องการ search ที่ส่งมาในตัวแปร pattern ให้ตัวแปร pattern ที่เป็น static มีค่าเดียวกันด้วย _pattern = pattern; // ส่งค่า false มาภายใน ignoreCase ให้ตัวแปร _ignoreCase ที่เป็น static มีค่าเดียวกันด้วย _ignoreCase = ignoreCase; // (Create multi-stage skip table) เรียก class UnicodeSkipArray // โดยส่งความยาวของ string ของข้อความที่ต้องการ search ไปให้ รีเทินค่ากลับมาเป็น array 2 มิติ _skipArray = new UnicodeSkipArray(_pattern.Length); // ถ้ากำหนดให้ search แบบ non - case sensitive if (_ignoreCase) { // เก็บข้อความจาก pattern ที่เก็บข้อความที่ต้องการ search ไว้ภายในอเรย์ _skipArray // โดยคอนเวิตให้เป็นทั้งตัวใหญ่และตัวเล็ก for (int i = 0; i < _pattern.Length - 1; i++) { _skipArray[Char.ToLower(_pattern[i])] = (byte)(_pattern.Length - i - 1); _skipArray[Char.ToUpper(_pattern[i])] = (byte)(_pattern.Length - i - 1); } } // ถ้ากำหนดให้ search แบบ case sensitive else { // เก็บข้อความจาก pattern ที่เก็บข้อความที่ต้องการ search ไว้ภายในอเรย์ _skipArray // โดยไม่คอนเวิตให้เป็นทั้งตัวใหญ่และตัวเล็ก เก็บข้อความเดิมๆของมัน for (int i = 0; i < _pattern.Length - 1; i++) _skipArray[_pattern[i]] = (byte)(_pattern.Length - i - 1); } }
/// <summary> /// Initializes this instance to search a new pattern. /// </summary> /// <param name="pattern">Pattern to search for</param> /// <param name="ignoreCase">If true, search is case-insensitive</param> public void Initialize(string pattern, bool ignoreCase) { _pattern = pattern; _ignoreCase = ignoreCase; // Create multi-stage skip table _skipArray = new UnicodeSkipArray(_pattern.Length); // Initialize skip table for this pattern if (_ignoreCase) { for (int i = 0; i < _pattern.Length - 1; i++) { _skipArray[char.ToLower(_pattern[i])] = (byte)(_pattern.Length - i - 1); _skipArray[char.ToUpper(_pattern[i])] = (byte)(_pattern.Length - i - 1); } } else { for (int i = 0; i < _pattern.Length - 1; i++) { _skipArray[_pattern[i]] = (byte)(_pattern.Length - i - 1); } } }