แนะนำ: การเขียนโปรแกรมขั้นสูง ASP 3.0 (41) 9.2.3 การใช้ขั้นตอนที่เก็บไว้การใช้ขั้นตอนที่เก็บไว้เป็นพื้นที่ที่ใช้วัตถุคำสั่ง ขั้นตอนที่เก็บไว้ (บางครั้งเรียกว่าการสืบค้นที่เก็บข้อมูล) เป็นคำสั่ง SQL แบบสอบถามที่กำหนดไว้ล่วงหน้าในฐานข้อมูล เหตุใดจึงควรสร้างขั้นตอนการจัดเก็บและใช้แทนการใช้โดยตรงในรหัส
นี่คือเกมเกี่ยวกับการเข้ารหัสคำที่เขียนใน ASP, VBScript และ JavaScript
ไม่พบปัญหาสำคัญภายใต้การทดสอบภายใต้ Win98 OEM2, PWS และ IE5
วิธีใช้:
วิธีที่ 1: ตัวอย่างเช่นไดเรกทอรีของบริการ 3W ของคุณคือ C:/InetPub/wwwwroot สร้างไดเรกทอรีด้านล่างเช่น WordASB; คัดลอกไฟล์เกม (wordasb.asp) ลงในไดเรกทอรี; พิมพ์ http: // ชื่อเครื่องของคุณ/wordasb/wordasb.asp หรือ http://127.0.0.1/wordasb/wordasb.asp ในแถบที่อยู่ของ IE และกด Enter เพื่อเริ่มเกม
วิธีที่ 2: คัดลอกไฟล์เกม (wordasb.asp) ลงในไดเรกทอรีที่สร้างขึ้นใหม่ คลิกขวาที่ไดเรกทอรีเลือกคุณสมบัติในเมนูคลิกหน้าคุณสมบัติการแชร์เว็บคลิกแชร์รายการโฟลเดอร์นี้และคลิกตกลง พิมพ์ http: // ชื่อเครื่องของคุณ/ชื่อไดเรกทอรีใหม่/wordasb.asp หรือ http://127.0.0.1/ ในแถบที่อยู่ของ IE ป้อนและเริ่มเกม
หมายเหตุ: ระบบระบบปฏิบัติการของคุณควรเป็นเซิร์ฟเวอร์ NT หรือ Win2000 หรือระบบปฏิบัติการอื่น ๆ แต่ติดตั้ง PWS
วิธีการเล่นเกม:
คลิกคำแนะนำเกมในเกมเพื่อทราบ หากบางครั้งหน้าว่างเปล่าโปรดกด F5 เพื่อรีเฟรช (นี่เป็นข้อผิดพลาดที่ใหญ่ที่สุดในปัจจุบันด้วย)
รหัสมีดังนี้:
| ต่อไปนี้เป็นเนื้อหาที่ยกมา: <%@ language = vbscript%> % ตัวเลือกอย่างชัดเจน 'อัปเดตล่าสุดโดย Recon เมื่อ 03/16/2001 dim m_ipartcnt dim m_strprompt dim m_astrsenpart (), m_astrfilename () dim m_astrwords (), m_aiopstatus () - 'คำอธิบายตัวแปรคงที่ 'm_ipartcnt: จำนวนหมวดหมู่คำศัพท์ จำนวนเต็ม 'm_strprompt: พรอมต์หลังจากการดำเนินการไฟล์เสร็จสมบูรณ์ ประเภทสตริง 'M_AstrSenPart: ชื่อของการจำแนกคำศัพท์ อาร์เรย์ตัวละคร 'm_astrfilename: บันทึกชื่อไฟล์ของไฟล์คำศัพท์ต่างๆ อาร์เรย์ตัวละคร 'M_Astrwords: บันทึกคำศัพท์ทุกชนิด อาร์เรย์อักขระสองมิติ 'M_AIOPSTATUS: บันทึกสถานะหลังจากทำงานในแต่ละไฟล์ อาร์เรย์จำนวนเต็ม - 'showmethod m_ipartcnt = 4 m_strprompt = Redim M_AstrsenPart (m_ipartcnt) Redim M_Astrfilename (m_ipartcnt) Redim M_Astrwords (m_ipartcnt) REDIM M_AIOPSTATUS (M_IPARTCNT) 'กำหนดชื่อของหมวดหมู่คำศัพท์ต่างๆ M_AstrSenPart (0) = เรื่อง M_AstrSenPart (1) = ปริญญา ADVERBIAL M_AstrSenPart (2) = สถานที่ Adverbial M_AstrSenPart (3) = ภาคแสดง 'กำหนดชื่อของเอกสารคำศัพท์ต่างๆ m_astrfilename (0) = who.txt m_astrfilename (1) = how.txt m_astrfilename (2) = where.txt m_astrfilename (3) = what.txt หาก request.serverVariables (request_method) = โพสต์แล้ว 'หากวิธีการร้องขอของหน้าคือโพสต์ - 'รับข้อมูลลูกค้า - สลัว m_isenpart สลัว m_stropway dim m_brpteddata - 'คำอธิบายตัวแปรคงที่ 'm_isenpart: ตัวเลขที่แสดงถึงการจำแนกคำศัพท์ จำนวนเต็ม 'การจำแนกคำศัพท์มาจากอาร์เรย์ m_astrsenpart 'ค่าที่เป็นไปได้คือ: '0: เรื่อง '1: ปริญญาคำวิเศษณ์ '2: สถานที่ Adverbial '3: ภาคแสดง 'm_stropway: วิธีการใช้งานไฟล์ ประเภทสตริง 'ค่าที่เป็นไปได้คือ: '1. บันทึก: บันทึกคำศัพท์บางประเภทลงในไฟล์ '2. SaveAll: บันทึกคำศัพท์ทั้งหมดในไฟล์ '3. โหลด: โหลดคำศัพท์บางประเภทจากไฟล์ '4. loadall: โหลดคำศัพท์ทั้งหมดจากไฟล์ 'M_BRPTEDDATA: ระบุว่าข้อมูลแบบฟอร์มที่ส่งมาในเวลานี้เหมือนกับครั้งสุดท้ายหรือไม่ ประเภทบูลีน 'ค่าที่เป็นไปได้คือ: '1. FALSE: ข้อมูลแบบฟอร์มไม่ได้ทำซ้ำ '2. จริง: ข้อมูลฟอร์มซ้ำแล้วซ้ำอีก (เช่นแบบฟอร์มจะถูกส่งซ้ำ ๆ ) - 'Showform 'วิธีรับคำขอของผู้ใช้ m_stropway = request.form (txtopway) 'แสดง (m_stropway) 'รับคำในหมวดหมู่ต่างๆ สำหรับ m_icount = 0 ถึง (m_ipartcnt - 1) ถ้า request.form (txtwords & m_icount) <> แล้ว M_Astrwords (m_icount) = split (request.form (txtwords & m_icount) ,,) สิ้นสุดถ้า 'response.write ubound (m_astwords (m_icount)) & <br> ต่อไป 'การตรวจจับการส่งแบบฟอร์มซ้ำ ๆ ซ้ำ ๆ 'ถ้าเซสชัน (forminf) = request.form แล้ว '' การส่งแบบฟอร์มซ้ำแล้วซ้ำอีก 'm_brptedData = true 'อื่น '' แบบฟอร์มไม่ได้ส่งซ้ำ 'เซสชัน (forminf) = request.form 'M_BRPTEDDATA = FALSE 'สิ้นสุดถ้า 'แสดง (m_brpteddata) - 'ใช้งานไฟล์คำ - 'ถ้า m_brptedData = false แล้ว dim m_icount, m_ierrcnt dim m_strfilepath - 'คำอธิบายตัวแปรคงที่ 'M_Icount: เคาน์เตอร์ จำนวนเต็ม 'm_ierrcnt: จำนวนครั้งที่การดำเนินการล้มเหลว จำนวนเต็ม 'm_strfilepath: บันทึกเส้นทางของไฟล์คำศัพท์ต่างๆ ประเภทสตริง - 'รับเส้นทางที่จะวางไฟล์คำศัพท์ m_strfilepath = request.serverVariables (path_translated) m_strfilepath = ซ้าย (m_strfilepath, instrrev (m_strfilepath, /)) 'm_strfilepath = m_strfilepath & คำ/ คำ/ 'แสดง (m_strfilepath) 'เริ่มการทำงานของไฟล์ 'Response.write เริ่มใช้งานไฟล์คำ <br> เลือกกรณี m_stropway บันทึกเคส 'บันทึกคำไปยังไฟล์ m_isenpart = cint (request.form (txtsenpart))) m_aiopstatus (m_isenpart) = savefile (m_isenpart) 'ตามสถานะการดำเนินการรับข้อมูลแจ้งเตือน เลือกกรณี m_aiopstatus (m_isenpart) กรณี 0 m_strprompt = [& m_astrsenpart (m_isenpart) &] บางคำได้รับการบันทึกไว้ในไฟล์สำเร็จ กรณีที่ 1 m_strprompt = [& m_astrsenpart (m_isenpart) &] การบันทึกบางไฟล์ล้มเหลว สิ้นสุดเลือก กรณี saiall 'บันทึกคำทั้งหมดในไฟล์ m_ierrcnt = 0 สำหรับ m_icount = 0 ถึง (m_ipartcnt - 1) m_aiopstatus (m_icount) = savefile (m_icount) ถ้า m_aiopstatus (m_icount) = 1 แล้ว m_ierrcnt = m_ierrcnt 1 สิ้นสุดถ้า ต่อไป 'ตามสถานะการดำเนินการรับข้อมูลแจ้งเตือน เลือกกรณี m_ierrcnt กรณี 0 m_strprompt = ทุกหมวดหมู่ของคำได้รับการบันทึกสำเร็จในไฟล์ กรณี m_ipartcnt m_strprompt = ไฟล์ Word ในทุกหมวดหมู่ล้มเหลวในการบันทึก กรณีอื่น m_strprompt = ที่ไหน สำหรับ m_icount = 0 ถึง (m_ipartcnt - 1) ถ้า m_aiopstatus (m_icount) = 1 แล้ว m_strprompt = m_strprompt & [& m_astrsenpart (m_icount) &], สิ้นสุดถ้า ต่อไป m_strprompt = ซ้าย (m_strprompt, len (m_strprompt) - 1) m_strprompt = m_strprompt & ไฟล์บางไฟล์ไม่สามารถบันทึกได้ สิ้นสุดเลือก โหลดเคส 'โหลดคำจากไฟล์ m_isenpart = cint (request.form (txtsenpart))) m_aiopstatus (m_isenpart) = loadfile (m_isenpart) 'ตามสถานะการดำเนินการรับข้อมูลแจ้งเตือน เลือกกรณี m_aiopstatus (m_isenpart) กรณี 0 m_strprompt = [& m_astrsenpart (m_isenpart) &] บางคำได้รับการโหลดสำเร็จ กรณีที่ 1 m_strprompt = [& m_astrsenpart (m_isenpart) &] บางไฟล์ไม่มีอยู่และการโหลดล้มเหลว สิ้นสุดเลือก case loadall 'โหลดคำจากแต่ละไฟล์ m_ierrcnt = 0 สำหรับ m_icount = 0 ถึง (m_ipartcnt - 1) m_aiopstatus (m_icount) = loadfile (m_icount) ถ้า m_aiopstatus (m_icount) = 1 แล้ว m_ierrcnt = m_ierrcnt 1 สิ้นสุดถ้า ต่อไป 'ตามสถานะการดำเนินการรับข้อมูลแจ้งเตือน เลือกกรณี m_ierrcnt กรณี 0 m_strprompt = ทุกหมวดหมู่ของคำได้รับการโหลดสำเร็จ กรณี m_ipartcnt m_strprompt = ไฟล์คำในทุกหมวดหมู่ไม่มีอยู่การโหลดล้มเหลวอย่างสมบูรณ์ กรณีอื่น m_strprompt = ที่ไหน สำหรับ m_icount = 0 ถึง (m_ipartcnt - 1) ถ้า m_aiopstatus (m_icount) = 1 แล้ว m_strprompt = m_strprompt & [& m_astrsenpart (m_icount) &], สิ้นสุดถ้า ต่อไป m_strprompt = ซ้าย (m_strprompt, len (m_strprompt) - 1) m_strprompt = m_strprompt & ไฟล์บางไฟล์ไม่มีการโหลดบางอย่างล้มเหลว สิ้นสุดเลือก สิ้นสุดเลือก 'สิ้นสุดถ้า สิ้นสุดถ้า 'response.write สิ้นสุดการใช้งานไฟล์คำ <br> 'response.write เริ่มเขียนหน้าไคลเอนต์ <br> % <html> <หัว> <ชื่อเรื่อง> เกมจับคู่คำ </ชื่อ> <meta name = content ตัวสร้าง = editPlus> <meta name = เนื้อหาผู้เขียน => <meta name = contents contents => <ชื่อเมตา = คำอธิบายเนื้อหา => <!-ตารางสไตล์-> <สไตล์> !-- /*ฟอนต์ภาษาอังกฤษ 1*/ .Fonteng1 - Font-Family: Times New Roman; รูปแบบฟอนต์:; - /*ฟอนต์ภาษาอังกฤษ 2*/ .Fonteng2 - Font-Family: Times New Roman; แบบฟอนต์: ตัวเอียง; - /*ยึดติดกับแบบอักษร*/ .Fontemp - สี: สีแดง; - /*ลิงค์*/ . ลิงก์ - Font-Family: Times New Roman; แบบฟอนต์: ตัวเอียง; การตกแต่งข้อความ: ไม่มี; - /* รายการคำที่แสดง*/ . listshown - ตำแหน่ง: สัมบูรณ์; ความกว้าง: 140px; ความสูง: 200px; แสดง: อินไลน์; เส้นขอบ: Lightcoral 1px Solid; พื้นหลังสี: Gainsboro; - /*รายการคำที่ซ่อนอยู่*// . - ตำแหน่ง: สัมบูรณ์; ความกว้าง: 140px; ความสูง: 200px; แสดง: ไม่มี; เส้นขอบ: Lightcoral 1px Solid; พื้นหลังสี: Gainsboro; - /*แก้ไขรายการคำ*// .ListFixed - ตำแหน่ง: สัมบูรณ์; ความกว้าง: 140px; ความสูง: 200px; แสดง: อินไลน์; เส้นขอบ: สีแดง 1px แข็ง; พื้นหลังสี: Gainsboro; - /*แสดงรายการวิธีใช้*/ .helpshown - ตำแหน่ง: สัมบูรณ์; ความกว้าง: ; ความสูง: ; แสดง: บล็อก; เส้นขอบ: Lightcoral 1px Solid; พื้นหลังสี: Gainsboro; - /*รายการช่วยเหลือที่ซ่อนอยู่*/ . - ตำแหน่ง: สัมบูรณ์; ความกว้าง: ; ความสูง: ; แสดง: ไม่มี; เส้นขอบ: Lightcoral 1px Solid; พื้นหลังสี: Gainsboro; - /*รายการวิธีใช้ที่ตรึง*// .helpfixed - ตำแหน่ง: สัมบูรณ์; ความกว้าง: ; ความสูง: ; แสดง: บล็อก; เส้นขอบ: สีแดง 1px แข็ง; พื้นหลังสี: Gainsboro; - /*แท็กไฮไลต์*/ .lblmover - การตกแต่งข้อความ: ไม่มี; สี: Lightcoral; พื้นหลังสี:; - /*แท็กแสดงผลปกติ*/ .lblmout - การตกแต่งข้อความ: ไม่มี; สี: ; พื้นหลังสี:; - /*คลิกแท็ก*/ . lblclicked - การตกแต่งข้อความ: ขีดเส้นใต้; สี: สีแดง; พื้นหลังสี:; - /* ปุ่มไฮไลต์*/ .BTNLIGHTED - ความกว้าง: 105px; สี: สีน้ำเงิน; พื้นหลังสี:; - /*ปุ่มแสดงผลธรรมดา*/ .Btndelighted - ความกว้าง: 105px; สี: ; พื้นหลังสี:; - /* รายการรายการคำที่ไฮไลต์*/ .Optlighted - การตกแต่งข้อความ: ขีดเส้นใต้; สี: สีน้ำเงิน; พื้นหลังสี:; เคอร์เซอร์: มือ; - /*รายการรายการคำที่แสดงปกติ*/ . optdelighted - การตกแต่งข้อความ: ไม่มี; สี: ; พื้นหลังสี:; เคอร์เซอร์:; - - </สไตล์> <!-สคริปต์ไคลเอนต์-> <ภาษาสคริปต์ = JavaScript> !-- // ฟังก์ชั่นสาธารณะและการทดสอบของลูกค้า - // ชื่อฟังก์ชั่น: ltrim // ฟังก์ชั่น: ลบพื้นที่ทางด้านซ้ายของสตริง // อินพุต: 1. strtemp: สตริงเป็นปกติ ประเภทสตริง // เอาต์พุต: สตริงปกติ ประเภทสตริง - ฟังก์ชั่น ltrim (strtemp) - var icount, ilength; - // คำอธิบายตัวแปรคงที่ // icount: เคาน์เตอร์ จำนวนเต็ม // ilength: ความยาวของสตริง จำนวนเต็ม - ilength = strtemp.length; สำหรับ (icount = 0; icount <ilength; icount) if (strtemp.charat (icount)! =) return strtemp.substring (icount, ilength); กลับ ; - - // ชื่อฟังก์ชั่น: rtrim // ฟังก์ชั่น: ลบพื้นที่ทางด้านขวาของสตริง // อินพุต: 1. strtemp: สตริงเป็นปกติ ประเภทสตริง // เอาต์พุต: สตริงปกติ ประเภทสตริง - ฟังก์ชั่น rtrim (strtemp) - var icount, ilength; - // คำอธิบายตัวแปรคงที่ // icount: เคาน์เตอร์ จำนวนเต็ม // ilength: ความยาวของสตริง จำนวนเต็ม - ilength = strtemp.length; สำหรับ (icount = ilength -1; icount> = 0; icount -) if (strtemp.charat (icount)! =) return strtemp.substring (0, icount 1); กลับ ; - - // ชื่อฟังก์ชั่น: ตัดแต่ง // ฟังก์ชั่น: ลบช่องว่างทั้งสองด้านของสตริง // อินพุต: 1. strtemp: สตริงเป็นปกติ ประเภทสตริง // เอาต์พุต: สตริงปกติ ประเภทสตริง - ฟังก์ชั่นตัดแต่ง (strtemp) - return RTRIM (LTRIM (StRTEMP)); - // แปลงตัวเลข 2 หลักเป็นสตริง 2 หลัก - // ชื่อฟังก์ชั่น: get2bnumstr // ฟังก์ชั่น: แปลงหมายเลข 2 บิตเป็นสตริงหมายเลข 2 บิต // อินพุต: 1. inumird: จำนวนที่จะแปลง จำนวนเต็ม // เอาต์พุต: สตริงตัวเลขที่แปลงแล้ว จำนวนเต็ม - ฟังก์ชั่น get2bnumstr (inurgy) - var str2bnum; - // คำอธิบายตัวแปรคงที่ // str2bnum: สตริงตัวเลข ประเภทสตริง - if (parseint (inurgal) <10) str2bnum = 0 inumird; อื่น str2bnum = inurgy; กลับ str2bnum; - - // func function name: AssignFunc // ฟังก์ชั่น: ระบุฟังก์ชั่นการจัดการเหตุการณ์ขององค์ประกอบ // อินพุต: 1. ELE: องค์ประกอบของฟังก์ชั่นการจัดการเหตุการณ์ที่จะระบุ ประเภทวัตถุ // 2. func: ฟังก์ชั่นการจัดการเหตุการณ์ เกี่ยวกับการทำงาน // 3. เหตุการณ์: ประเภทเหตุการณ์ ประเภทสตริง // เอาท์พุท: ไม่มี - ฟังก์ชั่นกำหนด Func (ele, func, กิจกรรม) - var icount, ielecount; var strevent; - // คำอธิบายตัวแปรคงที่ // icount: เคาน์เตอร์ จำนวนเต็ม // ielecount: จำนวนองค์ประกอบในการรวบรวมองค์ประกอบที่มีชื่อเดียวกัน จำนวนเต็ม // strevent: ประเภทเหตุการณ์ ประเภทสตริง - if (event == null) strevent = onclick; อื่น strevent = เหตุการณ์; IEleCount = Ele.length; if (ielecount == ไม่ได้กำหนด) eval (ele. strevent = func); อื่น สำหรับ (icount = 0; icount <ielecount; icount) eval (ele [icount]. strevent = func); - - // ชื่อฟังก์ชั่น: geteleindex // ฟังก์ชั่น: รับดัชนีขององค์ประกอบที่เหตุการณ์เกิดขึ้นในคอลเลกชันของชื่อเดียวกัน // อินพุต: 1. ELESRC: องค์ประกอบที่เกิดเหตุการณ์ ประเภทวัตถุ // เอาท์พุท: ดัชนีขององค์ประกอบที่เหตุการณ์เกิดขึ้นในคอลเลกชันของชื่อเดียวกัน - ฟังก์ชั่น geteleindex (ELESRC) - var colsrc; var icount, ielecount; - // คำอธิบายตัวแปรคงที่ // COLSRC: การรวบรวมองค์ประกอบที่มีชื่อเดียวกัน อาร์เรย์ประเภทวัตถุ // icount: เคาน์เตอร์ จำนวนเต็ม // ielecount: จำนวนองค์ประกอบในการรวบรวมองค์ประกอบที่มีชื่อเดียวกัน จำนวนเต็ม - colsrc = eval (elesrc.id); ielecount = colsrc.length; สำหรับ (icount = 0; icount <ielecount; icount) - if (colsrc [icount] == elesrc) กลับมา ICONT; - กลับ -1; - // แสดงค่าของตัวแปรคงที่ (สำหรับการดีบัก) //! เตรียมที่จะลบ ฟังก์ชั่นแสดง (strdef1, strdef2, strdef3, strdef4) - var icount, idefcnt; var strshow, strtemp; idefcnt = 4; strshow = [ค่าตัวแปรคงที่]; สำหรับ (icount = 1; icount <= idefcnt; icount) - strtemp = eval (strdef icount); if (strtemp! = undefined && strtemp! = null) strshow = /n strtemp: eval (strtemp); - การแจ้งเตือน (strshow); - - // ชื่อฟังก์ชั่น: Showarray // ฟังก์ชั่น: แสดงองค์ประกอบของอาร์เรย์หนึ่งมิติ (สำหรับการดีบัก) // อินพุต: 1. อาร์เรย์: อาร์เรย์หนึ่งมิติที่จะแสดง อาร์เรย์ // เอาท์พุท: ไม่มี - Function Showarray (Array) - var icount, ielecount; var strshow; - // คำอธิบายตัวแปรคงที่ // icount: เคาน์เตอร์ จำนวนเต็ม // ielecount: จำนวนองค์ประกอบอาร์เรย์ จำนวนเต็ม // strshow: สตริงที่ประกอบด้วยค่าองค์ประกอบอาร์เรย์ ประเภทสตริง - ielecount = array.length; strshow = ความยาวอาร์เรย์: ielecount; strshow = /n ------------------------------------------------------------------------------------------------ สำหรับ (icount = 0; icount <ielecount; icount) - if (typeof (array [icount]) == วัตถุ) strshow = อาร์เรย์ [icount] .id; อื่น strshow = อาร์เรย์ [icount]; - การแจ้งเตือน (strshow); - - // ชื่อฟังก์ชั่น: show2darray // ฟังก์ชั่น: แสดงองค์ประกอบของอาร์เรย์สองมิติ (สำหรับการดีบัก) // อินพุต: 1. อาร์เรย์: อาร์เรย์สองมิติที่จะแสดง อาร์เรย์ // เอาท์พุท: ไม่มี - ฟังก์ชั่น show2darray (อาร์เรย์) - var ix, iy, ilen1, ilen2; var strshow; - // คำอธิบายตัวแปรคงที่ // ix: เคาน์เตอร์ จำนวนเต็ม // iy: เคาน์เตอร์ จำนวนเต็ม // ilen1: จำนวนอาร์เรย์หนึ่งมิติ จำนวนเต็ม // ilen2: จำนวนอาร์เรย์สองมิติ จำนวนเต็ม // strshow: สตริงที่ประกอบด้วยค่าองค์ประกอบอาร์เรย์ ประเภทสตริง - ilen1 = array.length; strshow = อาร์เรย์ความยาว 1d: ilen1; strshow = /n ---------------------------------; สำหรับ (ix = 0; ix <ilen1; ix) - strshow = /n; ilen2 = อาร์เรย์ [ix] .length; สำหรับ (iy = 0; iy <ilen2; iy) strshow = อาร์เรย์ [ix] [iy]; - การแจ้งเตือน (strshow); - - </สคริปต์> <ภาษาสคริปต์ = JavaScript> !-- - // window_onload - // getword // รีเซ็ต //บันทึก // โหลด - // showlist // hidelist // fixlist // Valuelist - // showhelp // hidehelp // fixhelp - // resetall // SaveAll // loadall // ประกอบ - // lightbtn // delightbtn // lightopt // dysleopt - // makeopt // removeOpt - var m_ipartcnt; var m_astrsenpart, m_astrwords; var m_strprompt; var m_ilistfixed, m_ihelpfixed; - // คำอธิบายตัวแปรคงที่ // m_ipartcnt: จำนวนหมวดหมู่คำศัพท์ จำนวนเต็ม // m_astrsenpart: ชื่อของการจำแนกคำศัพท์ อาร์เรย์ตัวละคร // M_Astrwords: บันทึกคำศัพท์ต่างๆ อาร์เรย์อักขระสองมิติ // m_strprompt: ข้อความพรอมต์หลังจากการดำเนินการไฟล์เสร็จสมบูรณ์ ประเภทสตริง // M_ILISTFIXED: หมายเลขที่แสดงรายการคำคงที่ จำนวนเต็ม // -1 หมายความว่าไม่มีรายการคำที่ได้รับการแก้ไข // m_ihelpFixed: หมายเลขที่แสดงถึงสถานะคงที่ของรายการวิธีใช้ จำนวนเต็ม // -1 หมายความว่ารายการวิธีใช้ไม่ได้รับการแก้ไข - window.onload = window_onload; - // เริ่มต้นหน้าเว็บ ฟังก์ชั่น window_onload () - var icount, ielecnt; var colbutton; var strhelp; - // คำอธิบายตัวแปรคงที่ // icount: เคาน์เตอร์ จำนวนเต็ม // ielecnt: จำนวนองค์ประกอบในคอลเลกชัน จำนวนเต็ม // Colbutton: คอลเลกชันขององค์ประกอบปุ่ม อาร์เรย์ประเภทวัตถุ // strhelp: เนื้อหาไฟล์ช่วยเหลือ ประเภทสตริง - m_ipartcnt = <%= m_ipartcnt%>; m_strprompt = <%= m_strprompt%>; m_ilistFixed = -1; m_ihelpFixed = -1; M_AstrSenPart = new Array (); M_AstRwords = new Array (); // Alert (m_ipartcnt: m_ipartcnt /nm_strprompt: m_strprompt); // รับชื่อของการจำแนกคำศัพท์และคำศัพท์ต่าง ๆ ที่โหลด <%สำหรับ m_icount = 0 ถึง (m_ipartcnt - 1)%> // รับคำศัพท์ทุกชนิดที่โหลด <%ถ้า isempty (m_astwords (m_icount)) = จริงแล้ว%> M_Astrwords [<%= M_Icount%>] = new Array (); <%อื่น%> M_Astrwords [<%= M_Icount%>] = <%= เข้าร่วม (M_Astrwords (m_icount) ,,)%>. แยก (,); <%end ถ้า%> // รับชื่อการจำแนกคำศัพท์ M_AstrSenPart [<%= M_Icount%>] = <%= M_AstrSenPart (M_Icount)%>; <%ถัดไป%> // show2darray (m_astwords); // showarray (m_astrsenpart); // เขียนคำศัพท์ที่โหลดทุกชนิดไปยังหน้า สำหรับ (icount = 0; icount <m_ipartcnt; icount) Valuelist (M_Astrwords [icount], icount); // โหลดไฟล์ช่วยเหลือ // strhelp = tblhelp.outerhtml; // strhelp = divhelp1.innerhtml; //tblhelp.outerhtml =; //divhelp.innerhtml = strhelp; //tblhelp.style.display =; //divhelp.style.display = ไม่มี; //divhelp.style.left = divhelp1.style.left; // Alert (ซ้าย: divhelp.style.left /nleft: divhelp1.style.left); // Alert (Pixelleft: divhelp.style.pixelleft /npixelleft: divhelp1.style.pixelleft); // Alert (Posleft: divhelp.style.posleft /nposleft: divhelp1.style.posleft); // Alert (Offsetleft: Divhelp.offsetleft /noffsetleft: divhelp1.offsetleft); // Alert (clientleft: divhelp.Clientleft /nclientleft: divhelp1.clientleft); // ระบุฟังก์ชั่นการจัดการเหตุการณ์ขององค์ประกอบหน้า กำหนด Func (txtword, getWord, onkeypress); กำหนด Func (btngetword, getWord); กำหนด Func (btnreset, รีเซ็ต); กำหนด Func (btnsave, บันทึก); กำหนด func (btnload, โหลด); กำหนด Func (lblwordList, showlist, onmouseover); กำหนด Func (lblwordList, hidelist, onmouseout); กำหนด Func (lblwordList, fixlist); กำหนด Func (lblhelp, showhelp, onmouseover); กำหนด Func (lblhelp, hidehelp, onmouseout); กำหนด Func (lblhelp, fixhelp); กำหนด Func (BTNRESETALL, RESETALL); AssignFunc (BTNSaveAll, SaveAll); กำหนด func (btnloadall, loadall); AssignFunc (BTNASB, Assemble); colbutton = document.all.tags (ปุ่ม); ielecnt = colbutton.length; // Showarray (Colbutton); // Alert (ielecnt: ielecnt); สำหรับ (icount = 0; icount <ielecnt; icount) - AssignFunc (Colbutton [icount], Lightbtn, OnMouseOver); AssignFunc (Colbutton [ICONT], DelightBTN, OnMouseOut); - // ตั้งค่าสถานะเริ่มต้นของหน้า if (m_strprompt! =) การแจ้งเตือน (m_strprompt); txtword [0] .focus (); - - // รับคำที่ป้อนโดยผู้ใช้ ฟังก์ชั่น getWord () - // เฉพาะเมื่อกด Enter หรือในกล่องคำว่าอินพุต // ดำเนินการต่อไปเมื่อกดปุ่มบันทึก if (window.event.type! = keypress && window.event.type! = คลิก) กลับ; อื่น if (window.event.type == keypress && window.event.keycode! = 13) return; var elesrc; var iindex, inxtwrdidx; var strword; - // คำอธิบายตัวแปรคงที่ // ELESRC: องค์ประกอบที่เกิดขึ้น // iindex: หมายเลขแทนคำศัพท์การจำแนกคำศัพท์ จำนวนเต็ม // inxtwrdidx: ดัชนีของคำศัพท์ใหม่ในอาร์เรย์คำ จำนวนเต็ม // strword: คำที่ป้อนโดยผู้ใช้ ประเภทสตริง - elesrc = window.event.srcelement; iindex = GeteleIndex (ELESRC); // รับดัชนี strword = trim (txtword [iindex] .value); // รับคำที่ป้อนโดยผู้ใช้ // ตรวจพบว่าคำที่ป้อนนั้นถูกกฎหมายหรือไม่ // หากเป็นคำที่ผิดกฎหมายออกไป ถ้า (strword ==) - // ถ้าคำที่ป้อนเป็นว่างหรือสตริงอวกาศ การแจ้งเตือน (คำไม่สามารถว่างเปล่าหรือสตริงอวกาศ); txtword [iindex] .Select (); กลับ; - if (strword.indexof (,)! = -1 || strword.indexof ()! = -1) - // ถ้าคำที่ป้อนมีเครื่องหมายจุลภาคหรือช่องว่าง การแจ้งเตือน (คำไม่สามารถมีเครื่องหมายจุลภาคหรือช่องว่าง); txtword [iindex] .Select (); กลับ; - // บันทึกคำเป็นคำศัพท์อาร์เรย์ InxtWrDidx = M_Astrwords [iIndex] .length; M_Astrwords [iIndex] [InxtWrDidx] = strword; // showarray (m_astwords [iindex]); // เขียนคำไปยังหน้า Valuelist (M_Astrwords [iindex], iindex); txtword [iindex] .value =; txtword [iindex] .focus (); - - // ลบคำทั้งหมดในหมวดหมู่ปัจจุบันจากหน่วยความจำ รีเซ็ตฟังก์ชั่น () - var elesrc; var iindex, icount; var strprompt; - // คำอธิบายตัวแปรคงที่ // ELESRC: องค์ประกอบที่เกิดขึ้น // iindex: หมายเลขแทนคำศัพท์การจำแนกคำศัพท์ จำนวนเต็ม // icount: เคาน์เตอร์ จำนวนเต็ม // strPrompt: การดำเนินการพร้อมท์ ประเภทสตริง - elesrc = window.event.srcelement; iindex = GeteleIndex (ELESRC); strPrompt = คุณแน่ใจหรือไม่ว่าคุณต้องการล้างคำทั้งหมดในส่วน [m_astrsenpart [iindex]] จากหน่วยความจำ? - if (window.confirm (strPrompt) == false) return; M_Astrwords [iIndex] = new Array (); Valuelist (M_Astrwords [iindex], iindex); // showarray (m_astwords [iindex]); strPrompt = ล้างคำ; การแจ้งเตือน (strprompt); txtword [iindex] .Select (); - - // บันทึกคำศัพท์ปัจจุบันของหมวดหมู่ที่เลือกไว้ในไฟล์ ฟังก์ชั่นบันทึก () - var elesrc; var iindex, icount; - // คำอธิบายตัวแปรคงที่ // ELESRC: องค์ประกอบที่เกิดขึ้น // iindex: หมายเลขแทนคำศัพท์การจำแนกคำศัพท์ จำนวนเต็ม // icount: เคาน์เตอร์ จำนวนเต็ม - elesrc = window.event.srcelement; iindex = GeteleIndex (ELESRC); if (m_astwords [iindex] .length == 0) - // ถ้าจำนวนคำปัจจุบันในหมวดหมู่ที่เลือกเป็นศูนย์ var strprompt; strPrompt = [m_astrsenpart [iindex]] ตอนนี้ไม่มีคำที่เป็นตัวเลือกแล้วคุณแน่ใจหรือไม่ว่าต้องการบันทึก? - strPrompt = /n (สิ่งนี้จะสร้างไฟล์ใหม่ที่ว่างเปล่า); if (window.confirm (strPrompt) == false) return; - // บันทึกคำทั้งหมดในหน่วยความจำปัจจุบัน สำหรับ (icount = 0; icount <m_ipartcnt; icount) eval (frmwords.txtwords icount) .value = m_astwords [icount] .oin (,); frmwords.txtsenpart.value = iindex; frmwords.txtopway.value = บันทึก; frmwords.submit (); - - // อ่านบันทึกคำของหมวดหมู่ที่เลือกจากไฟล์ ฟังก์ชันโหลด () - var elesrc; var iindex, icount; - // คำอธิบายตัวแปรคงที่ // ELESRC: องค์ประกอบที่เกิดขึ้น // iindex: หมายเลขแทนคำศัพท์การจำแนกคำศัพท์ จำนวนเต็ม // icount: เคาน์เตอร์ จำนวนเต็ม - elesrc = window.event.srcelement; iindex = GeteleIndex (ELESRC); // บันทึกคำทั้งหมดในหน่วยความจำปัจจุบัน สำหรับ (icount = 0; icount <m_ipartcnt; icount) evals (frmwords.txtwords icount) .value = m_astwords [icount] .oin (,) frmwords.txtsenpart.value = iindex; frmwords.txtopway.value = โหลด; frmwords.submit (); - - // แสดงรายการคำศัพท์ ฟังก์ชั่น showlist (iindex) - // หากไม่ได้รับพารามิเตอร์ iIndex // รับ iindex if (iindex == ไม่ได้กำหนด) - // หากรายการคำได้รับการแก้ไขแล้วให้ออกจากฟังก์ชัน if (m_ilistfixed! = -1) return; var elesrc; var iindex; - // คำอธิบายตัวแปรคงที่ // ELESRC: องค์ประกอบที่เกิดขึ้น // iindex: หมายเลขแทนคำศัพท์การจำแนกคำศัพท์ จำนวนเต็ม - elesrc = window.event.srcelement; iindex = GeteleIndex (ELESRC); - // Alert (iindex: iindex); // แสดงรายการคำศัพท์ //lblwordList [Iindex.innerText = [lblwordList [iIndex] .innerText]; //lblwordList [iindex เหมือนกัน. innerText = lblwordList [iIndex] .innerText>; lblwordList [iindex] .className = lblMover; DivwordList [iIndex] .className = ListShown; - - // ซ่อนรายการคำศัพท์ ฟังก์ชั่น hidelist (iindex) - // หากไม่ได้รับพารามิเตอร์ iIndex // รับ iindex if (iindex == ไม่ได้กำหนด) - // หากรายการคำได้รับการแก้ไขแล้วให้ออกจากฟังก์ชัน if (m_ilistfixed! = -1) return; var elesrc; var iindex; - // คำอธิบายตัวแปรคงที่ // ELESRC: องค์ประกอบที่เกิดขึ้น // iindex: หมายเลขแทนคำศัพท์การจำแนกคำศัพท์ จำนวนเต็ม - elesrc = window.event.srcelement; iindex = GeteleIndex (ELESRC); - // Alert (iindex: iindex); // ซ่อนรายการคำศัพท์ //lblwordList [iindex.innerText = lblwordList [iindex] .innerText.slice (0, -1); lblwordList [iindex] .className = lblMout; DivwordList [iIndex] .className = listhidden; - - // รายการคำศัพท์คงที่ ฟังก์ชั่น fixlist () - var elesrc; var iindex; - // คำอธิบายตัวแปรคงที่ // ELESRC: องค์ประกอบที่เกิดขึ้น // iindex: หมายเลขแทนคำศัพท์การจำแนกคำศัพท์ จำนวนเต็ม - elesrc = window.event.srcelement; iindex = GeteleIndex (ELESRC); สวิตช์ (m_ilistfixed) - กรณี -1: // หากยังไม่มีรายการคำ // แก้ไขรายการปัจจุบัน m_ilistFixed = iIndex; lblwordList [iindex] .className = lblClicked; DivwordList [iIndex] .className = ListFixed; หยุดพัก; กรณี iindex: // ถ้ารายการคำที่คงที่เป็นรายการปัจจุบัน // แก้ไขรายการปัจจุบัน m_ilistFixed = -1; lblwordList [iindex] .className = lblMover; DivwordList [iIndex] .className = ListShown; หยุดพัก; ค่าเริ่มต้น: // ถ้ารายการคำที่คงที่ไม่ใช่รายการปัจจุบัน // รายการการแก้ไขคงที่ hidelist (m_ilistfixed); m_ilistFixed = -1; lblwordList [iindex] .className = lblMover; showlist (iindex); หยุดพัก; - // Alert (M_ILISTFIXED: M_ILISTFIXED /NIINDEX: IINDEX); - - // เขียนคำที่โหลดในคำศัพท์บางประเภท ฟังก์ชั่น Valuelist (Awords, Isenpart) - var icount, iwrdcnt; var strlistppt; - // คำอธิบายตัวแปรคงที่ // icount: เคาน์เตอร์ จำนวนเต็ม // iwrdcnt: จำนวนคำของคำศัพท์บางประเภท จำนวนเต็ม // strlistppt: แจ้งในรายการคำ ประเภทสตริง - // การเตรียมข้อมูล iwrdcnt = awords.length; lblwordcount [isenpart] .innerText = iwrdcnt; strlistppt = <div >< span style = 'สี: สีแดง; แบบฟอนต์: ตัวเอียง; ขนาดฟอนต์: 10.5pt; '>; strlistppt = ดับเบิลคลิกที่คำเพื่อลบ </span> </div>; // เขียนคำไปยังรายการ if (iwrdcnt! = 0) - DivwordList [isenpart] .innerhtml = strlistppt; สำหรับ (icount = 0; icount <iwrdcnt; icount) DivwordList [isenpart] .innerhtml = makeopt (awords [icount], icount); - อื่น DivwordList [isenpart] .innerhtml = strlistppt; - - // แสดงรายการวิธีใช้ ฟังก์ชั่น Showhelp () - // หากรายการวิธีใช้ได้รับการแก้ไขแล้วให้ออกจากฟังก์ชัน if (m_ihelpFixed == 0) return; // แสดงความช่วยเหลือ lblhelp.className = lblMover; Divhelp.className = Helpshown; - - // ซ่อนรายการวิธีใช้ ฟังก์ชั่น hidehelp () - // หากรายการวิธีใช้ได้รับการแก้ไขแล้วให้ออกจากฟังก์ชัน if (m_ihelpFixed == 0) return; // ซ่อนความช่วยเหลือ lblhelp.className = lblmout; Divhelp.className = Helphidden; - - // แก้ไขรายการวิธีใช้ ฟังก์ชั่น fixhelp () - if (m_ihelpFixed == -1) - // หากรายการความช่วยเหลือยังไม่ได้รับการแก้ไข // แก้ไข m_ihelpFixed = 0; lblhelp.className = lblclicked; Divhelp.className = HelpFixed; - อื่น - // หากรายการวิธีใช้ได้รับการแก้ไขแล้ว // แก้ไขมัน m_ihelpFixed = -1; lblhelp.className = lblMover; Divhelp.className = Helpshown; - - - // รีเซ็ตหน้าเป็นสถานะเริ่มต้น ฟังก์ชั่นรีเซ็ต () - var icount; - // คำอธิบายตัวแปรคงที่ // icount: เคาน์เตอร์ จำนวนเต็ม - สำหรับ (icount = 0; icount <m_ipartcnt; icount) - txtword [icount] .value =; M_Astrwords [icount] = new Array (); // ล้างคำว่าอาร์เรย์ Valuelist (M_Astrwords [icount], icount); - txtsentence.value =; txtword [0] .focus (); - - // บันทึกคำทั้งหมดในไฟล์ ฟังก์ชั่น saiall () - var icount, iemptycnt; var strprompt; - // คำอธิบายตัวแปรคงที่ // icount: เคาน์เตอร์ จำนวนเต็ม // iemptycnt: จำนวนหมวดหมู่ที่มี 0 คำ จำนวนเต็ม // strPrompt: การดำเนินการพร้อมท์ ประเภทสตริง - iemptycnt = 0; สำหรับ (icount = 0; icount <m_ipartcnt; icount) - // บันทึกคำทั้งหมดในหน่วยความจำปัจจุบัน eval (frmwords.txtwords icount) .value = m_astwords [icount] .oin (,); if (m_astwords [icount] .length == 0) iemptycnt; - // Alert (iemptycnt: iemptycnt); ถ้า (iemptycnt> 0) - สวิตช์ (iemptycnt) - กรณี m_ipartcnt: strPrompt = จำนวนคำศัพท์ในทุกหมวดหมู่คือ 0 และการดำเนินการจะสร้างไฟล์ว่าง m_ipartcnt; strPrompt = /n คุณแน่ใจหรือไม่ว่าต้องการทำสิ่งนี้? - หยุดพัก; ค่าเริ่มต้น: strPrompt = ที่ไหน,; สำหรับ (icount = 0; icount <m_ipartcnt; icount) if (m_astwords [icount] .length == 0) strPrompt = [M_AstrSenPart [icount]],; strPrompt = strPrompt.slice (0, -1); strPrompt = จำนวนคำบางคำคือ 0; การดำเนินการ strPrompt = /n จะสร้างไฟล์ว่างเปล่าของ iemptycnt; strPrompt = คุณแน่ใจหรือไม่ว่าต้องการทำสิ่งนี้? - - if (window.confirm (strPrompt) == false) return; - frmwords.txtopway.value = SaveAll; frmwords.submit (); - - // โหลดคำทั้งหมดจากไฟล์ ฟังก์ชั่น loadall () - var icount; - // คำอธิบายตัวแปรคงที่ // icount: เคาน์เตอร์ จำนวนเต็ม - // บันทึกคำทั้งหมดในหน่วยความจำปัจจุบัน สำหรับ (icount = 0; icount <m_ipartcnt; icount) evals (frmwords.txtwords icount) .value = m_astwords [icount] .oin (,) frmwords.txtopway.value = loadall; frmwords.submit (); - - // โปรดจับคู่คำศัพท์และรับประโยค ฟังก์ชั่นประกอบ () - var icount, iwrdcnt, irndindex; var strsentence; - // คำอธิบายตัวแปรคงที่ // icount: เคาน์เตอร์ จำนวนเต็ม // iwrdcnt: จำนวนคำของคำศัพท์บางประเภท จำนวนเต็ม // irndindex: ดัชนีคำที่สร้างขึ้นแบบสุ่ม จำนวนเต็ม // strsentence: ประโยคที่ประกอบด้วยคำสุ่มในแต่ละหมวดหมู่ของคำศัพท์ ประเภทสตริง - strsentence =; สำหรับ (icount = 0; icount <m_ipartcnt; icount) - // ถ้าจำนวนคำศัพท์ปัจจุบันในหมวดหมู่คือ 0 // ให้คำสั่งและยกเลิกการจัดระเบียบ iwrdcnt = m_astrwords [icount] .length; if (iwrdcnt == 0) - var strprompt; - // คำอธิบายตัวแปรคงที่ // strPrompt: การดำเนินการพร้อมท์ ประเภทสตริง - strPrompt = [M_AstrSenPart [icount]] ส่วนไม่มีคำเสริม; strPrompt = /nplease ป้อนอย่างน้อยหนึ่งคำ; การแจ้งเตือน (strprompt); txtword [icount] .Select (); กลับ; - // สุ่มเลือกคำจากคำศัพท์หมวดหมู่ปัจจุบัน // เพิ่มลงในประโยค irndindex = math.floor (math.random ()*iwrdcnt); strsentence = m_astrwords [icount] [irndindex]; // alert (iwrdcnt: iwrdcnt /nirndindex: irndindex); - strsentence = - txtsentence.value = strsentence; - // ปุ่มที่เมาส์เคลื่อนที่ // สร้างเอฟเฟกต์แสงไฟ ฟังก์ชั่น lightbtn () - var elesrc; - // คำอธิบายตัวแปรคงที่ // ELESRC: องค์ประกอบที่เกิดขึ้น - elesrc = window.event.srcelement; ในขณะที่ (elesrc.tagname.touppercase ()! = ปุ่ม) ELESRC = ELESRC.ParentElement; elesrc.classname = btnlighted; - // ปุ่มที่นำเมาส์ออกไป // กู้คืนสู่สถานะเริ่มต้น ฟังก์ชั่น Delightbtn () - var elesrc; - // คำอธิบายตัวแปรคงที่ // ELESRC: องค์ประกอบที่เกิดขึ้น - elesrc = window.event.srcelement; ในขณะที่ (elesrc.tagname.touppercase ()! = ปุ่ม) ELESRC = ELESRC.ParentElement; elesrc.classname = btndelighted; - // ในรายการคำที่ย้ายเมาส์ // สร้างเอฟเฟกต์แสงไฟ ฟังก์ชั่น Lightopt (Ele) - var elesrc; - // คำอธิบายตัวแปรคงที่ // ELESRC: องค์ประกอบที่เกิดขึ้น - elesrc = ele; elesrc.className = optLighted; - // ในรายการคำที่ทำให้เมาส์ออกไป // กู้คืนสู่สถานะเริ่มต้น ฟังก์ชั่น Dysleopt (Ele) - var elesrc; - // คำอธิบายตัวแปรคงที่ // ELESRC: องค์ประกอบที่เกิดขึ้น - elesrc = ele; elesrc.className = optdelighted; - // รับคำที่กำหนดไว้ในรายการ ฟังก์ชั่น makeopt (strword, iwrdidx) - var stropthead, stroptfoot; var stroptword; - // คำอธิบายตัวแปรคงที่ // stropthead: กำหนดส่วนหัวของคำใหม่ ประเภทสตริง // stroptfoot: กำหนดจุดสิ้นสุดของคำ ประเภทสตริง // stroptword: คำนิยามใหม่ ประเภทสตริง - stropthead = <div class = 'optdelighted' onMouseOver = 'Lightopt (นี่);' OnMouseOut = 'DoryesOpt (นี่);' ondblClick = 'removeOpt (นี่);' wrdidx = 'iwrdidx'>; stroptfoot = </div>; stroptword = stropthead strword stroptfoot; // Alert (stroptword); ส่งคืน Stroptword; - // ลบคำในรายการ ฟังก์ชั่น removeOpt (ele) - var elesrc; var iindex, iwrdidx; var astrwords, sthead, astrfoot; - // คำอธิบายตัวแปรคงที่ // ELESRC: องค์ประกอบที่เกิดขึ้น // iindex: หมายเลขแทนคำศัพท์การจำแนกคำศัพท์ จำนวนเต็ม // iwrdidx: ดัชนีคำในคำศัพท์ จำนวนเต็ม // Astrwords: คำศัพท์คำศัพท์บางประเภท อาร์เรย์สตริง // Astrhead: ส่วนหัวของอาร์เรย์คำศัพท์บางประเภท อาร์เรย์สตริง // astrfoot: ส่วนท้ายของอาร์เรย์คำศัพท์บางประเภท อาร์เรย์สตริง - elesrc = ele; iindex = geteleindex (elesrc.parentelement); iwrdidx = parseint (elesrc.wrdidx); // ลบคำจากอาเรย์คำศัพท์ // showarray (m_astwords [iindex]); Astrwords = m_astrwords [iindex] .concat (); asthead = Astrwords.slice (0, iwrdidx); ASTFOOT = ASTRWORDS.SLICE (IWRDIDX 1); M_Astrwords [iIndex] = Astrhead.concat (Astrfoot); // Showarray (Astrhead); // Showarray (Astrfoot); // showarray (m_astwords [iindex]); // เขียนคำที่เหลือลงในหน้าใหม่ Valuelist (M_Astrwords [iindex], iindex); txtword [iindex] .Select (); - //-- </สคริปต์> </หัว> <ร่างกาย> <!-ชื่อ-> <div align = center> <span style = ขนาดตัวอักษร: 20pt; Font-Weight: ตัวหนา> เกมจับคู่คำ </span> <span class = fonteng2> v1.0 </span> </div> <HR Style = การมองเห็น: ซ่อน> <!-ตารางหลัก 1-> border border table = 0 Align = ความกว้างกลาง = 80%> <Colgroup ></Colgroup> <Colgroup ></Colgroup> <Colgroup ></Colgroup> <Colgroup ></Colgroup> <Colgroup ></Colgroup> <Colgroup ></Colgroup> <Colgroup Align = Center ></Colgroup> <Colgroup ></Colgroup> <%สำหรับ m_icount = 0 ถึง (m_ipartcnt - 1)%> <tr> <td ><%= m_astrsenpart (m_icount)%></td> <ความกว้าง td = 20%>< ประเภทอินพุต = ข้อความ ID = txtword style = ความกว้าง: 100%></td> <td >< ปุ่ม ID = btngetword style = width: 75px title = บันทึกคำในหน่วยความจำ> บันทึก </button> </td> <td >< ปุ่ม ID = btnreset style = ความกว้าง: 75px title = ลบคำทั้งหมดในหมวดหมู่ปัจจุบันจากหน่วยความจำ> รีเซ็ต </ปุ่ม ></td> <td >< ปุ่ม ID = btnsave style = width: 75px title = บันทึกคำไปยังไฟล์> บันทึกใน </button ></td> <td >< ปุ่ม id = btnload style = width: 75px title = โหลดคำจากไฟล์> โหลด </ปุ่ม ></td> <ความกว้าง td = 15%>< id label id = lblwordList title = คลิกเพื่อแก้ไขฉัน> รายการคำ </ฉลาก ></td> <td> <div id = divwordlist class = listhidden ></div> 个数:<label id=lblWordCount class=fontEng1><%= 0%></label> </td> </tr> <%Next%> </ตาราง> <hr style=visibility: HIDDEN> <hr style=color: BLUE> <!--主表格2--> <table border=0 align=CENTER width=80%> <colgroup width=16%></colgroup> <colgroup width=16%></colgroup> <colgroup width=16%></colgroup> <colgroup></colgroup> <tr> <td><button id=btnResetAll accesskey=r title=从内存中删去所有类别的单词class=btnDelighted>全部重置<u>R</u></button></td> <td><button id=btnSaveAll accesskey=s title=将所有类别的单词保存到文件中class=btnDelighted>全部存入<u>S</u></button></td> <td><button id=btnLoadAll accesskey=l title=从文件中载入所有类别的单词class=btnDelighted>全部载入<u>L</u></button></td> <td> <span style=font-size: 9pt; color: RED;>请单击</span> <label id=lblHelp title=单击固定我>游戏说明</label> <!--帮助说明表格--> <div id=divHelp class=helpHidden> <table id=tblHelp border=0 align=CENTER width=300px style=font-size: 9pt;> <colgroup width=75px></colgroup> <colgroup></colgroup> <tr><td colspan=2> <a href=#1 style=color: BLUE;>游戏步骤</a> <a href=#2 style=color: BLUE;>操作说明</a> <a href=#3 style=color: BLUE;>游戏起源</a> <a href=#4 style=color: BLUE;>制作原因</a> <a href=#5 style=color: BLUE;>游戏功效</a> <a name=0 style=display: NONE;>TOP</a> </td></tr> <!--游戏步骤--> <tr><td colspan=2></td></tr> <tr><td colspan=2> [<a name=1 style=color: BLUE;>游戏步骤</a>] <a href=#0 class=link>TOP</a> </td></tr> <tr><td colspan=2> <span class=fontEng1><1></span>在每个部分的<span class=fontEmp>输入框</span>中输入单词, 按<span class=fontEmp>回车</span>或<span class=fontEmp>保存</span>按钮存入内存中; 或按<span class=fontEmp>载入</span>按钮调出以前保存的某类别单词纪录; 或按<span class=fontEmp>全部载入</span>按钮调出以前保存的所有类别单词纪录<br> <span class=fontEng1><2></span>按<span class=fontEmp>开始搭配</span>按钮,系统将从各类单词中随机抽取一个,组成一个句子 </td></tr> <!--操作说明--> <tr><td colspan=2></td></tr> <tr><td colspan=2> [<a name=2 style=color: BLUE;>操作说明</a>] <a href=#0 class=link>TOP</a> </td></tr> <tr> <td>保存</td> <td>得到用户输入的单词</td> </tr> <tr> <td>重置</td> <td>将当前类别所有的单词从内存中删去</td> </tr> <tr> <td>存入</td> <td>将所选类别的当前词汇保存进文件中</td> </tr> <tr> <td>载入</td> <td>从文件中读取所选类别的单词纪录</td> </tr> <tr> <td>全部重置</td> <td>重置页面至初始状态</td> </tr> <tr> <td>全部保存</td> <td>把所有类别的单词都存入文件</td> </tr> <tr> <td>全部载入</td> <td>从文件中载入所有类别的单词</td> </tr> <tr> <td>开始搭配</td> <td>进行词汇搭配,得到一个句子</td> </tr> <tr><td></td></tr> <tr><td colspan=2> <span class=fontEng1><1></span> <span class=fontEmp>将鼠标移至单词列表处</span>,会弹出该类词汇的单词列表; <span class=fontEmp>将鼠标移开</span>,列表会自动隐藏; <span class=fontEmp>点击单词列表</span>,会固定单词列表; <span class=fontEmp>再次点击</span>,会取消固定<br> <span class=fontEng1><2></span> 在<span class=fontEmp>固定住一个单词列表</span>后, <span class=fontEmp>双击</span>该列表中的某个单词,可以将该单词从内存中删去<br> <span class=fontEng1><3></span> 输完一个单词后,<span class=fontEmp>直接按回车</span>就可以保存了,这样比按保存保存单词更方便 </td></tr> <!--游戏起源--> <tr><td colspan=2></td></tr> <tr><td colspan=2> [<a name=3 style=color: BLUE;>游戏起源</a>] <a href=#0 class=link>TOP</a> </td></tr> <tr><td colspan=2> 这个游戏想法来自于小时候玩的纸团游戏。那时和姐姐在家里闲得无聊,就玩这个,哈哈。 玩法很简单,做一些纸片,分成四堆,分别写上<span class=fontEmp>亲朋好友的名字</span>、<span class=fontEmp>形容程度的词语</span>、<span class=fontEmp>关于地点的词语</span>和<span class=fontEmp>所做的事情</span>。 然后,将纸片捏成纸团,<span class=fontEng1>OK, Let's Start!</span> 现在从每堆中抽出一个纸团,就有四个词语,将它们组成一句话,因为是随便抽的,有时能组成很搞笑的句子。 For example: Chen Nan excitedly dances Hawaiian hula dance on the street; thousands of people take a leisurely bath in the park. - </td></tr> <!--制作原因--> <tr><td colspan=2></td></tr> <tr><td colspan=2> [<a name=4 style=color: BLUE;>制作原因</a>] <a href=#0 class=link>TOP</a> </td></tr> <tr><td colspan=2> 主要是无聊,想做个游戏娱乐一下自己,当然也希望大家能从中得到笑声。 Secondly, I also want to exercise my skills. I used to do one with <span class=fontEng1>VB</span>, but it was not very good. This time I used <span class=fontEng1>ASP</span>. I don’t know if there has been any progress. ฮ่าฮ่า 这个版本我大概地测试了一下,没发现大的<span class=fontEng1>bug</span>。如果您在游戏中发现了问题或有什么建议,请一定告诉我,在此先谢谢了! 我的信箱是<a href=mailto: [email protected] class=link>[email protected]</a>。不好你就说吗!不可能你说好我又说不好,你不说好我又说好的,^_ </td></tr> <!--游戏功效--> <tr><td colspan=2></td></tr> <tr><td colspan=2> [<a name=5 style=color: BLUE;>游戏功效</a>] <a href=#0 class=link>TOP</a> </td></tr> <tr><td colspan=2> 因为是搞笑游戏,所以能使你心情愉快、青春焕发,间接增加找对象的成功率; 因为不用做纸团了,减少了浪费和污染,从而美化了世界环境; I believe there are many benefits, please help me find it. ฮ่า. </td></tr> </ตาราง> </div> </td> </tr> <tr> <td><button id=btnAsb accesskey=a title=从每个类别词汇中随机抽取一个单词,组成一个句子class=btnDelighted>开始搭配<u>A</u></button></td> <td colspan=3><input type=text id=txtSentence style=width: 100%></td> </tr> </ตาราง> <hr style=color: BLUE> <!--提交表单--> <form id=frmWords method=POST action= style=display: NONE;> <%For m_iCount = 0 To (m_iPartCnt - 1)%> <input type=text name=txtWords<%= m_iCount%>> <%Next%> <input type=text name=txtSenPart> <input type=text name=txtOpWay> </ฟอร์ม> <!--版权--> <div align=CENTER> <div> © <span class=fontEng2>2001 China Sentin Sci. & Tech. Co., Ltd.</span> <span class=fontEng2>All Rights Reserved.</span> </div> <div> <span class=fontEng2>Authored by</span> <a href=mailto: [email protected] class=link>Recon</a></span> <a href=http://recon.top263.net/ class=link>http://recon.top263.net/</a> </div> </div> </body> </html> % '以下是服务器端脚本 '用到的函数和过程 - '函数名:SaveFile '功能:将某类词汇保存到文件中 'Input: 1. iSenPart: a number representing the vocabulary classification. จำนวนเต็ม ' 可能的值有: ' 0:主语 ' 1:程度状语 ' 2:地点状语 ' 3:谓语 'Output: The status value after the file operation. จำนวนเต็ม ' 可能的值有: ' 0:操作成功 ' 1:操作失败 - Function SaveFile(iSenPart) Dim fsoMain, tsfWords Dim iCount, iWrdCnt Dim iOpStatus - '常变量说明 'fsoMain :FSO对象 'tsfWords :TEXTSTREAM对象 'iCount : Counter. จำนวนเต็ม 'iWrdCnt: The number of words of a certain type of vocabulary. จำนวนเต็ม 'iOpStatus: The status after the file operation is completed. จำนวนเต็ม - Set fsoMain = Server.CreateObject(SCRIPTING.FILESYSTEMOBJECT) Set tsfWords= fsoMain.CreateTextFile(m_strFilePath & m_astrFileName(iSenPart), True) tsfWords.WriteLine([ & m_astrSenPart(iSenPart) & 部分]) '如果该类别至少有一个单词 If IsEmpty(m_astrWords(iSenPart)) = False Then iWrdCnt = UBound(m_astrWords(iSenPart)) 1 For iCount = 0 To (iWrdCnt - 1) tsfWords.WriteLine(m_astrWords(iSenPart)(iCount)) ต่อไป สิ้นสุดถ้า tsfWords.Close iOpStatus = 0 SaveFile = iOpStatus ฟังก์ชันสิ้นสุด - '函数名:LoadFile '功能:从文件中载入某类词汇 'Input: 1. iSenPart: a number representing the vocabulary classification. จำนวนเต็ม ' 可能的值有: ' 0:主语 ' 1:程度状语 ' 2:地点状语 ' 3:谓语 'Output: The status value after the file operation. จำนวนเต็ม ' 可能的值有: ' 0:操作成功 ' 1:操作失败 - Function LoadFile(iSenPart) Dim fsoMain, tsfWords Dim strLoaded Dim iOpStatus - '常变量说明 'fsoMain :FSO对象 'tsfWords :TEXTSTREAM对象 'strLoaded :某类词汇所有单词构成的字符串。字符串型 'iOpStatus: The status after the file operation is completed. จำนวนเต็ม - Set fsoMain = Server.CreateObject(SCRIPTING.FILESYSTEMOBJECT) If fsoMain.FileExists(m_strFilePath & m_astrFileName(iSenPart)) = True Then '如果存在纪录文件 strLoaded = Set tsfWords= fsoMain.OpenTextFile(m_strFilePath & m_astrFileName(iSenPart), 1) tsfWords.SkipLine Do While tsfWords.AtEndOfStream = False strLoaded = strLoaded & tsfWords.ReadLine & , วง If strLoaded <> Then strLoaded = Left(strLoaded, Len(strLoaded) - 1) m_astrWords(iSenPart) = Split(strLoaded, ,) อื่น m_astrWords(iSenPart) = Empty สิ้นสุดถ้า tsfWords.Close iOpStatus = 0 อื่น '如果不存在纪录文件 iOpStatus = 1 สิ้นสุดถ้า LoadFile = iOpStatus ฟังก์ชันสิ้นสุด % % '以下是服务器端脚本 '用于测试的函数和过程 Sub Show(strDef) Response.Write strDef & : & Eval(strDef) & <br> สิ้นสุดย่อย Sub ShowMethod() Response.Write Request Method: & Request.ServerVariables(REQUEST_METHOD) & <br> สิ้นสุดย่อย Sub ShowForm() สลัว icount Dim strProp iCount = 0 Response.Write *********Form Information******<br> For Each strProp In Request.Form iCount = iCount 1 Response.Write iCount & . & strProp & : & Request.Form(strProp) & <br> ต่อไป Response.Write *********Form End**************<br> สิ้นสุดย่อย % |
分享:ASP 3.0高级编程(十二) 4.2.3 服务器端包含指令的例子本节提供了一些示例页面,可以用来对各种服务器端包含语句进行实验。打开示例网页的子目录Chapter04,显示SSI Directives and the ASP Server Object&rdqu