موصى به: ASP 3.0 البرمجة المتقدمة (41) 9.2.3 استخدام الإجراءات المخزنة. استخدام الإجراءات المخزنة هو مجال يتم فيها تطبيق كائنات الأوامر. الإجراءات المخزنة (التي تسمى أحيانًا استعلامات التخزين) هي عبارات استعلام SQL التي يتم تحديدها مسبقًا في قاعدة بيانات. لماذا يجب إنشاء الإجراءات المخزنة واستخدامها بدلاً من استخدامها مباشرة في الكود
هذه لعبة حول ترميز الكلمات ، مكتوبة في ASP و VBScript و JavaScript.
لم يتم العثور على مشاكل كبيرة تحت الاختبار تحت Win98 OEM2 ، PWS ، و IE5.
كيفية استخدام:
الطريقة 1: على سبيل المثال ، فإن دليل خدمة 3W الخاص بك هو C:/Inetpub/wwwroot ، قم بإنشاء دليل أدناه ، مثل 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 لتحديثها (هذا هو أيضًا أكبر خطأ في الوقت الحالي).
الرمز كما يلي:
| ما يلي هو المحتوى المقتبس: < ٪@ لغة = vbscript ٪ > < ٪ الخيار صريح آخر تحديث بواسطة Recon في 03/16/2001 Dim M_ipartcnt Dim M_strprompt dim m_astrsenpart () ، m_astrfilename () Dim M_astorwords () ، 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 إذا طلب. servervariables (request_method) = post ثم إذا كانت طريقة طلب الصفحة منشورة '*************************** احصل على معلومات العميل '*************************** Dim m_isenpart خافت m_stropway dim m_brpteddata '----------------------------------------- وصف متغير مستمر 'm_isenpart: الأرقام التي تمثل تصنيف المفردات. عدد صحيح "تصنيف المفردات يأتي من المصفوفة m_astrsenpart القيم الممكنة هي: '0: الموضوع '1: درجة adverbial '2: مكان adverbial 3: مسند 'm_stropway: طريقة تشغيل الملف. نوع السلسلة القيم الممكنة هي: 1. حفظ: احفظ نوعًا معينًا من المفردات في ملف 2. سافيلل: حفظ جميع فئات المفردات في ملف 3. تحميل: تحميل نوع معين من المفردات من الملف 4. loadall: تحميل جميع فئات المفردات من الملف 'M_BRPTEDDATA: يشير إلى ما إذا كانت بيانات النموذج المقدمة هذه المرة هي نفس المرة الأخيرة. نوع منطقي القيم الممكنة هي: 1. خطأ: لا يتم تكرار بيانات النموذج 2. صحيح: يتم تكرار بيانات النموذج (أي يتم تقديم النموذج مرارًا وتكرارًا) '----------------------------------------- 'showform 'كيفية الحصول على طلبات المستخدم m_stropway = request.form (txtopway) عرض (m_stropway) احصل على الكلمات في فئات مختلفة لـ m_icount = 0 إلى (m_ipartcnt - 1) إذا طلب. m_astrwords (m_icount) = split (request.form (txtwords & m_icount) ، ،) إنهاء إذا 'Response.write ubound (m_astrwords (m_icount)) & <br> التالي 'اكتشاف تقديم النماذج المتكررة 'إذا كانت الجلسة (forminf) = request.form ثم '' النموذج يتكرر التقديم 'm_brpteddata = صحيح 'آخر '' النموذج هو تقديم غير متكرر 'الجلسة (forminf) = request.form 'm_brpteddata = false 'end if عرض (m_brpteddata) '*************************** قم بتشغيل ملف الكلمة '*************************** 'إذا كان m_brpteddata = خطأ ثم dim m_icount ، m_ierrcnt قاتمة m_strfilepath '----------------------------------------- وصف متغير مستمر 'm_icount: عداد. عدد صحيح 'm_ierrcnt: عدد مرات فشل العملية. عدد صحيح 'm_strfilepath: سجل مسار ملفات المفردات المختلفة. نوع السلسلة '----------------------------------------- احصل على الطريق لوضع ملف المفردات m_strfilepath = request.servervariables (path_translated) m_strfilepath = اليسار (m_strfilepath ، instrev (m_strfilepath ، /)) 'm_strfilepath = m_strfilepath & Words/ عرض (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) &] فشل بعض الملفات نهاية الاختيار حالة سافيل "احفظ جميع فئات الكلمات في الملف 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 = فشل ملفات الكلمات في جميع الفئات حالة أخرى 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) و] بعض الملفات غير موجودة وفشل التحميل نهاية الاختيار الحمل القضية تحميل الكلمات من كل ملف 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 وبعض الملفات غير موجودة ، بعض التحميل نهاية الاختيار نهاية الاختيار 'end if إنهاء إذا 'Response.write End لتشغيل ملفات Word <br> 'Response.write تبدأ في كتابة صفحة العميل <br> ٪ > < HTML > < الرأس > < العنوان > لعبة مطابقة الكلمات </العنوان > < اسم meta = محتوى المولد = EditPlus > < اسم التعريف = محتوى المؤلف => < اسم meta = محتوى الكلمات الرئيسية => < اسم التعريف = الوصف محتوى => <!-طاولة النمط-> < النمط> <!- /*الخط الإنجليزي 1*/ .fonteng1 { Font-Family: Times New Roman ؛ على غرار الخط :؛ } /*الخط الإنجليزي 2*/ .fonteng2 { Font-Family: Times New Roman ؛ على غرار الخط: مائل ؛ } /*الالتزام بالخط*/ .fontemp { اللون: أحمر. } /*وصلة*/ .وصلة { Font-Family: Times New Roman ؛ على غرار الخط: مائل ؛ تدمير النص: لا شيء ؛ } /* قائمة الكلمات المعروضة*/ .listshown { الموقف: مطلق ؛ العرض: 140 بكسل ؛ الارتفاع: 200 بكسل ؛ العرض: مضمّن ؛ الحدود: الصلبة الخفيفة 1 بكسل. خلفية اللون: جينسبورو ؛ } /*قائمة الكلمات المخفية*/ .listhidden { الموقف: مطلق ؛ العرض: 140 بكسل ؛ الارتفاع: 200 بكسل ؛ العرض: لا شيء ؛ الحدود: الصلبة الخفيفة 1 بكسل. خلفية اللون: جينسبورو ؛ } /*قائمة الكلمات الثابتة*/ .listfixed { الموقف: مطلق ؛ العرض: 140 بكسل ؛ الارتفاع: 200 بكسل ؛ العرض: مضمّن ؛ الحدود: Red 1px صلبة ؛ خلفية اللون: جينسبورو ؛ } /*أظهر قائمة مساعدة*/ .helpshown { الموقف: مطلق ؛ عرض: ؛ ارتفاع: ؛ العرض: كتلة ؛ الحدود: الصلبة الخفيفة 1 بكسل. خلفية اللون: جينسبورو ؛ } /*قائمة المساعدة المخفية*/ .helphidden { الموقف: مطلق ؛ عرض: ؛ ارتفاع: ؛ العرض: لا شيء ؛ الحدود: الصلبة الخفيفة 1 بكسل. خلفية اللون: جينسبورو ؛ } /*قائمة المساعدة المثبتة*/ .helpfixed { الموقف: مطلق ؛ عرض: ؛ ارتفاع: ؛ العرض: كتلة ؛ الحدود: Red 1px صلبة ؛ خلفية اللون: جينسبورو ؛ } /*علامات مميزة*/ .lblmover { تدمير النص: لا شيء ؛ اللون: Lightcoral ؛ لون الخلفية :؛ } /*علامة العرض العادية*/ .lblmout { تدمير النص: لا شيء ؛ لون: ؛ لون الخلفية :؛ } /*النقر فوق العلامة*/ .lblclicked { تدمير النص: تسطير ؛ اللون: أحمر. لون الخلفية :؛ } /* زر مميز*/ .btnlighted { العرض: 105px ؛ اللون: الأزرق. لون الخلفية :؛ } /*زر العرض العادي*/ .btndelighted { العرض: 105px ؛ لون: ؛ لون الخلفية :؛ } /* عنصر قائمة الكلمات المميز*/ .optLighted { تدمير النص: تسطير ؛ اللون: الأزرق. لون الخلفية :؛ المؤشر: اليد. } /*عنصر قائمة الكلمات المعروض العادي*/ .optdelighted { تدمير النص: لا شيء ؛ لون: ؛ لون الخلفية :؛ المؤشر :؛ } -> </style> <!-نص العميل-> < لغة البرنامج النصي = JavaScript> <!- // العميل العام ووظائف الاختبار // *************************************** // اسم الوظيفة: ltrim // الوظيفة: قم بإزالة المساحة على الجانب الأيسر من السلسلة // الإدخال: 1. Strtemp: السلسلة لتكون منتظمة. نوع السلسلة // الإخراج: سلسلة منتظمة. نوع السلسلة // *************************************** وظيفة ltrim (strtemp) { var icount ، ilength ؛ // ----------------------------------------- // وصف متغير ثابت // icount: Counter. عدد صحيح // ilength: طول السلسلة. عدد صحيح // ----------------------------------------- ilength = strtemp.length ؛ لـ (icount = 0 ؛ icount < ilength ؛ icount) إذا (strtemp.charat (icount)! =) إرجاع strtemp.substring (icount ، ilength) ؛ يعود ؛ } // *************************************** // اسم الوظيفة: rtrim // الوظيفة: قم بإزالة المساحة على الجانب الأيمن من السلسلة // الإدخال: 1. Strtemp: السلسلة لتكون منتظمة. نوع السلسلة // الإخراج: سلسلة منتظمة. نوع السلسلة // *************************************** وظيفة rtrim (strtemp) { var icount ، ilength ؛ // ----------------------------------------- // وصف متغير ثابت // icount: Counter. عدد صحيح // ilength: طول السلسلة. عدد صحيح // ----------------------------------------- ilength = strtemp.length ؛ لـ (icount = ilength -1 ؛ icount> = 0 ؛ icount -) إذا (strtemp.charat (icount)! =) إرجاع strtemp.substring (0 ، icount 1) ؛ يعود ؛ } // *************************************** // اسم الوظيفة: تقليم // الوظيفة: قم بإزالة المسافات على جانبي السلسلة // الإدخال: 1. Strtemp: السلسلة لتكون منتظمة. نوع السلسلة // الإخراج: سلسلة منتظمة. نوع السلسلة // *************************************** تقليم الوظيفة (strtemp) { إرجاع rtrim (ltrim (strtemp)) ؛ } // تحويل أرقام من رقمين إلى سلسلة من رقمين // *************************************** // اسم الوظيفة: get2bnumstr // الوظيفة: تحويل الأرقام 2 بت إلى سلسلة أرقام 2 بت // الإدخال: 1. inumber: الرقم المراد تحويله. عدد صحيح // الإخراج: السلسلة الرقمية المحولة. عدد صحيح // *************************************** وظيفة get2bnumstr (inumber) { var str2bnum ؛ // ----------------------------------------- // وصف متغير ثابت // str2bnum: سلسلة رقمية. نوع السلسلة // ----------------------------------------- إذا (parseint (inumber) < 10) str2bnum = 0 inumber ؛ آخر str2bnum = inumber ؛ إرجاع str2bnum ؛ } // *************************************** // اسم وظيفة FUNC: issignfunc // الوظيفة: حدد وظيفة معالجة الأحداث للعنصر // الإدخال: 1. ELE: عنصر معالجة الأحداث ليتم تحديده. نوع الكائن // 2. FUNC: وظيفة معالجة الأحداث. وظيفية // 3. الحدث: نوع الحدث. نوع السلسلة // الإخراج: لا شيء // *************************************** وظيفة ignfunc (ele ، func ، حدث) { var icount ، ieleCount ؛ فار ستريفنت // ----------------------------------------- // وصف متغير ثابت // icount: Counter. عدد صحيح // ielecount: عدد العناصر في مجموعة العناصر بنفس الاسم. عدد صحيح // Strevent: نوع الحدث. نوع السلسلة // ----------------------------------------- إذا (الحدث == فارغ) Strevent = onclick ؛ آخر Strevent = الحدث ؛ ieleCount = ele.length ؛ إذا (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: Counter. عدد صحيح // ielecount: عدد العناصر في مجموعة العناصر بنفس الاسم. عدد صحيح // ----------------------------------------- colsrc = eval (elesrc.id) ؛ ieleCount = colsrc.length ؛ لـ (icount = 0 ؛ icount < ieleCount ؛ icount) { if (colsrc [icount] == ELESRC) إرجاع icount ؛ } العودة -1 ؛ } // إظهار قيمة المتغير الثابت (لتصحيح الأخطاء) //! الاستعداد للحذف عرض الوظيفة (StrDef1 ، StrDef2 ، Strdef3 ، Strdef4) { var icount ، idefcnt ؛ var strshow ، strtemp ؛ IDEFCNT = 4 ؛ strShow = [قيمة متغيرة ثابتة] ؛ لـ (icount = 1 ؛ icount < = idefcnt ؛ icount) { strtemp = eval (strdef icount) ؛ إذا (strtemp! = undefined && strtemp! = null) strshow = /n strtemp: eval (strtemp) ؛ } تنبيه (strshow) ؛ } // *************************************** // اسم الوظيفة: ShowArray // الوظيفة: عناصر عرض صفيف أحادي البعد (لتصحيح الأخطاء) // الإدخال: 1. صفيف: الصفيف أحادي البعد ليتم عرضه. صفيف // الإخراج: لا شيء // *************************************** وظيفة Showarray (صفيف) { var icount ، ieleCount ؛ var strshow. // ----------------------------------------- // وصف متغير ثابت // icount: Counter. عدد صحيح // ielecount: عدد عناصر الصفيف. عدد صحيح // strshow: سلسلة تتكون من قيم عنصر الصفيف. نوع السلسلة // ----------------------------------------- ieLecount = array.length ؛ strshow = طول الصفيف: ieLecount ؛ strshow = /n ----------------------------------- /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. // ----------------------------------------- // وصف متغير ثابت // التاسع: العداد. عدد صحيح // IY: Counter. عدد صحيح // Ilen1: عدد الصفيف أحادي البعد. عدد صحيح // Ilen2: عدد المصفوفات ثنائية الأبعاد. عدد صحيح // strshow: سلسلة تتكون من قيم عنصر الصفيف. نوع السلسلة // ----------------------------------------- ilen1 = array.length ؛ strShow = Array 1d length: Ilen1 ؛ strshow = /n ------------------------------------------ لـ (ix = 0 ؛ ix < ilen1 ؛ ix) { strshow = /n ؛ Ilen2 = صفيف [ix] .length ؛ لـ (iy = 0 ؛ iy < ilen2 ؛ iy) strshow = صفيف [ix] [iy] ؛ } تنبيه (strshow) ؛ } //-> </script> < لغة البرنامج النصي = JavaScript> <!- . // window_onload // // getWord //إعادة ضبط //يحفظ //حمولة // // showlist // Hidelist // fixlist // فالويست // // Showhelp // Hidehelp // FixHelp // // RESETALL // سافيل // loadall //تجمع // // lightbtn // spimalbtn // Lightopt // البهجة // // 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 ؛ فار كولبوتون فار ستارهيل. // ----------------------------------------- // وصف متغير ثابت // icount: Counter. عدد صحيح // ielecnt: عدد العناصر في المجموعة. عدد صحيح // Colbutton: مجموعة من عناصر الأزرار. كائن نوع مجموعة // strhelp: HELP FILE CONTERT. نوع السلسلة // ----------------------------------------- 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_astrwords (m_icount)) = صواب ثم ٪> m_astrwords [< ٪ = m_icount ٪>] = new array () ؛ < ٪ آخر ٪> m_astrwords [< ٪ = m_icount ٪>] = < ٪ = join (m_astrwords (m_icount) ،،) ٪>. split (،) ؛ < ٪ نهاية إذا ٪> // احصل على اسم تصنيف المفردات m_astrsenpart [< ٪ = m_icount ٪>] = < ٪ = m_astrsenpart (m_icount) ٪> ؛ < ٪ التالي ٪> // show2darray (m_astrwords) ؛ // 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) ؛ // حدد وظيفة معالجة الأحداث لعنصر الصفحة issignfunc (txtword ، getWord ، onkeypress) ؛ issignfunc (btngetword ، getWord) ؛ issignfunc (btnreset ، إعادة تعيين) ؛ issignfunc (btnsave ، حفظ) ؛ issignfunc (btnload ، load) ؛ issidfunc (lblwordlist ، showlist ، onMouseover) ؛ issignfunc (lblwordlist ، hidelist ، onMouseout) ؛ ExmentFunc (lblwordlist ، fixList) ؛ issignfunc (lblHelp ، showhelp ، onMouseover) ؛ issignfunc (lblHelp ، HideHelp ، onMouseout) ؛ issignfunc (lblHelp ، fixHelp) ؛ issignfunc (btnresetall ، resetall) ؛ issignfunc (btnsaveall ، saveall) ؛ issignfunc (btnloadall ، loadall) ؛ issignfunc (btnasb ، Assamble) ؛ colbutton = document.all.tags (button) ؛ ielecnt = colbutton.length ؛ // showarray (Colbutton) ؛ // ALERT (ielecnt: ielecnt) ؛ لـ (icount = 0 ؛ icount < ielecnt ؛ icount) { issignfunc (Colbutton [icount] ، lightbtn ، onMouseover) ؛ issignfunc (colbutton [icount] ، pleactbtn ، onMouseout) ؛ } // اضبط الحالة الأولية للصفحة إذا (m_strprompt! =) تنبيه (m_strprompt) ؛ txtword [0] .focus () ؛ } // ----------------------------------------------------- // احصل على الكلمة التي أدخلها المستخدم وظيفة getWord () { // فقط عند الضغط على إدخال أو في مربع إدخال الكلمات // استمر في القيام بذلك عند الضغط على زر حفظ if (window.event.type! = keypress && window.event.type! = انقر) يعود؛ آخر if (window.event.type == keypress && window.event.keycode! = 13) return ؛ var elesrc ؛ var iindex ، inxtwrdidx ؛ فار سترورتو ؛ // ----------------------------------------- // وصف متغير ثابت // ELESRC: العنصر الذي حدث فيه الحدث // Iindex: رقم يمثل تصنيف المفردات. عدد صحيح // inxtwrdidx: فهرس الكلمات الجديدة في صفيف الكلمات. عدد صحيح // strword: الكلمة التي أدخلها المستخدم. نوع السلسلة // ----------------------------------------- elesrc = window.event.srcelement ؛ iindex = getEleIndex (elesrc) ؛ // الحصول على الفهرس StrWord = trim (txtword [iindex] .value) ؛ // احصل على الكلمة التي أدخلها المستخدم // اكتشف ما إذا كانت الكلمة التي تم إدخالها قانونية // إذا كانت كلمة غير قانونية ، فخرج إذا (strword ==) { // إذا كانت الكلمة التي تم إدخالها فارغة أو سلسلة فضاء تنبيه (لا يمكن أن تكون الكلمات فارغة أو سلسلة فضاء) ؛ txtword [iindex] .select () ؛ يعود؛ } if (strwort.indexof (،)! = -1 || strword.indexof ()! = -1) { // إذا كانت الكلمة التي تم إدخالها تحتوي على فواصل أو مسافات التنبيه (لا يمكن أن تحتوي الكلمات على فواصل أو مسافات) ؛ txtword [iindex] .select () ؛ يعود؛ } // حفظ الكلمات في مجموعة المفردات inxtwrdidx = m_astrwords [iindex] .Length ؛ m_astrwords [iindex] [inxtWrdidx] = strword ؛ // showarray (m_astrwords [iindex]) ؛ // اكتب الكلمات إلى الصفحة Valuelist (m_astrwords [iindex] ، iindex) ؛ txtword [iindex] .value = ؛ txtword [iindex] .focus () ؛ } // ----------------------------------------------------- // حذف جميع الكلمات في الفئة الحالية من الذاكرة إعادة تعيين الوظيفة () { var elesrc ؛ var iindex ، icount ؛ فار ستربرومبت. // ----------------------------------------- // وصف متغير ثابت // ELESRC: العنصر الذي حدث فيه الحدث // Iindex: رقم يمثل تصنيف المفردات. عدد صحيح // icount: Counter. عدد صحيح // strprompt: Operation Product. نوع السلسلة // ----------------------------------------- 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_astrwords [iindex]) ؛ strprompt = كلمة تم مسحها ؛ تنبيه (strprompt) ؛ txtword [iindex] .select () ؛ } // ----------------------------------------------------- // احفظ المفردات الحالية للفئة المحددة في الملف وظيفة حفظ () { var elesrc ؛ var iindex ، icount ؛ // ----------------------------------------- // وصف متغير ثابت // ELESRC: العنصر الذي حدث فيه الحدث // Iindex: رقم يمثل تصنيف المفردات. عدد صحيح // icount: Counter. عدد صحيح // ----------------------------------------- elesrc = window.event.srcelement ؛ iindex = getEleIndex (elesrc) ؛ if (m_astrwords [iindex] .length == 0) { // إذا كان العدد الحالي للكلمات في الفئة المحددة هو الصفر فار ستربرومبت. strprompt = [m_astrsenpart [iindex]] القسم الآن ليس لديه كلمة اختيارية ، هل أنت متأكد من أنك تريد حفظه؟ ؛ strprompt = /n (سيؤدي هذا إلى إنشاء ملف جديد فارغ) ؛ if (window.confirm (strprompt) == false) return ؛ } // احفظ كل الكلمات في الذاكرة الحالية لـ (icount = 0 ؛ icount < m_ipartcnt ؛ icount) eval (frmwords.txtwords icount) .value = m_astrwords [icount]. Join (،) ؛ frmwords.txtsenpart.value = iindex ؛ frmwords.txtopway.value = حفظ ؛ frmwords.submit () ؛ } // ----------------------------------------------------- // اقرأ سجلات Word للفئة المحددة من الملف تحميل الوظيفة () { var elesrc ؛ var iindex ، icount ؛ // ----------------------------------------- // وصف متغير ثابت // ELESRC: العنصر الذي حدث فيه الحدث // Iindex: رقم يمثل تصنيف المفردات. عدد صحيح // icount: Counter. عدد صحيح // ----------------------------------------- elesrc = window.event.srcelement ؛ iindex = getEleIndex (elesrc) ؛ // احفظ كل الكلمات في الذاكرة الحالية لـ (icount = 0 ؛ icount < m_ipartcnt ؛ icount) eval (frmwords.txtwords icount) .value = m_astrwords [icount]. join (،) frmwords.txtsenpart.value = iindex ؛ frmwords.txtopway.value = load ؛ frmwords.submit () ؛ } // ----------------------------------------------------- // عرض قائمة المفردات قائمة عرض الوظائف (Iindex) { // إذا لم يتم إعطاء المعلمة iindex // احصل على Iindex إذا (iindex == غير محدد) { // إذا تم إصلاح قائمة الكلمات بالفعل ، فقم بالخروج من الوظيفة if (m_ilistfixed! = -1) return ؛ var elesrc ؛ var iindex ؛ // ----------------------------------------- // وصف متغير ثابت // ELESRC: العنصر الذي حدث فيه الحدث // Iindex: رقم يمثل تصنيف المفردات. عدد صحيح // ----------------------------------------- elesrc = window.event.srcelement ؛ iindex = getEleIndex (elesrc) ؛ } // ALERT (Iindex: iindex) ؛ // عرض قائمة المفردات //lblwordlist budapiindex. //lblwordlist budapiindex. lblwordlist [iindex] .className = lblMover ؛ DivWordList [iindex] .className = listshown ؛ } // ----------------------------------------------------- // إخفاء قائمة المفردات وظيفة Hidelist (Iindex) { // إذا لم يتم إعطاء المعلمة iindex // احصل على Iindex إذا (iindex == غير محدد) { // إذا تم إصلاح قائمة الكلمات بالفعل ، فقم بالخروج من الوظيفة if (m_ilistfixed! = -1) return ؛ var elesrc ؛ var iindex ؛ // ----------------------------------------- // وصف متغير ثابت // ELESRC: العنصر الذي حدث فيه الحدث // Iindex: رقم يمثل تصنيف المفردات. عدد صحيح // ----------------------------------------- elesrc = window.event.srcelement ؛ iindex = getEleIndex (elesrc) ؛ } // ALERT (Iindex: iindex) ؛ // إخفاء قائمة المفردات //lblwordlist budapiindex. lblwordlist [iindex] .className = lblMout ؛ DivWordList [iindex] .className = listhidden ؛ } // ----------------------------------------------------- // قائمة المفردات الثابتة Function 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: Counter. عدد صحيح // iwrdcnt: عدد كلمات نوع معين من المفردات. عدد صحيح // strlistppt: موجه في قائمة الكلمات. نوع السلسلة // ----------------------------------------- // إعداد البيانات iwrdcnt = awords.length ؛ lblwordCount [isenpart] .innertext = iwrdcnt ؛ strListPPt = < div >< span style = 'color: red ؛ على غرار الخط: مائل ؛ حجم الخط: 10.5pt ؛ '> ؛ strListPpt = انقر نقرًا مزدوجًا فوق الكلمة لحذفها </span> </viv> ؛ // اكتب الكلمات لتسرد إذا (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 = kilphidden ؛ } // ----------------------------------------------------- // قائمة المساعدة الثابتة وظيفة fixhelp () { إذا (m_ihelpfixed == -1) { // إذا لم يتم إصلاح قائمة المساعدة // إصلاحه m_ihelpfixed = 0 ؛ lblHelp.ClassName = lblClicked ؛ divhelp.className = helpfixed ؛ } آخر { // إذا تم إصلاح قائمة المساعدة // حلها m_ihelpfixed = -1 ؛ lblHelp.ClassName = lblMover ؛ divhelp.className = helpshown ؛ } } // ----------------------------------------------------- // إعادة تعيين الصفحة إلى الحالة الأولية إعادة التعاونية () { var icount // ----------------------------------------- // وصف متغير ثابت // icount: Counter. عدد صحيح // ----------------------------------------- لـ (icount = 0 ؛ icount < m_ipartcnt ؛ icount) { txtword [icount] .value = ؛ m_astrwords [icount] = new array () ؛ // تفريغ صفيف الكلمة Valuelist (m_astrwords [icount] ، icount) ؛ } txtsentence.value = ؛ txtword [0] .focus () ؛ } // ----------------------------------------------------- // حفظ جميع فئات الكلمات في ملف وظيفة Saveall () { var icount ، iemptycnt ؛ فار ستربرومبت. // ----------------------------------------- // وصف متغير ثابت // icount: Counter. عدد صحيح // iemptycnt: عدد الفئات مع 0 كلمات. عدد صحيح // strprompt: Operation Product. نوع السلسلة // ----------------------------------------- iemptycnt = 0 ؛ لـ (icount = 0 ؛ icount < m_ipartcnt ؛ icount) { // احفظ كل الكلمات في الذاكرة الحالية eval (frmwords.txtwords icount) .value = m_astrwords [icount]. Join (،) ؛ if (m_astrwords [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_astrwords [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: Counter. عدد صحيح // ----------------------------------------- // احفظ كل الكلمات في الذاكرة الحالية لـ (icount = 0 ؛ icount < m_ipartcnt ؛ icount) eval (frmwords.txtwords icount) .value = m_astrwords [icount]. join (،) frmwords.txtopway.value = loadall ؛ frmwords.submit () ؛ } // ----------------------------------------------------- // يرجى مباراة المفردات والحصول على جملة وظيفة التجميع () { var icount ، iwrdcnt ، irndindex ؛ فار سترينس. // ----------------------------------------- // وصف متغير ثابت // icount: Counter. عدد صحيح // iwrdcnt: عدد كلمات نوع معين من المفردات. عدد صحيح // irndindex: فهرس الكلمات الذي تم إنشاؤه عشوائيًا. عدد صحيح // strsentence: جملة تتألف من كلمات عشوائية في كل فئة من المفردات. نوع السلسلة // ----------------------------------------- strsentence = ؛ لـ (icount = 0 ؛ icount < m_ipartcnt ؛ icount) { // إذا كان العدد الحالي للمفردات في الفئة هو 0 // إعطاء موجه وإحباط التجميع iwrdcnt = m_astrwords [icount] .Length ؛ إذا (iwrdcnt == 0) { فار ستربرومبت. // ----------------------------------------- // وصف متغير ثابت // strprompt: Operation Product. نوع السلسلة // ----------------------------------------- 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; } //使鼠标移到之处的按钮 //产生点亮的效果 function lightBtn() { var eleSrc; //------------------------------------------ //常变量说明 //eleSrc :发生事件的元素 //------------------------------------------ eleSrc = window.event.srcElement; while (eleSrc.tagName.toUpperCase() != BUTTON) eleSrc = eleSrc.parentElement; eleSrc.className = btnLighted; } //使鼠标离开的按钮 //还原为初始状态 function delightBtn() { var eleSrc; //------------------------------------------ //常变量说明 //eleSrc :发生事件的元素 //------------------------------------------ eleSrc = window.event.srcElement; while (eleSrc.tagName.toUpperCase() != BUTTON) eleSrc = eleSrc.parentElement; eleSrc.className = btnDelighted; } //在列表中,使鼠标移到之处的单词 //产生点亮的效果 function lightOpt(ele) { var eleSrc; //------------------------------------------ //常变量说明 //eleSrc :发生事件的元素 //------------------------------------------ eleSrc = ele; eleSrc.className = optLighted; } //在列表中,使鼠标离开的单词 //还原为初始状态 function delightOpt(ele) { var eleSrc; //------------------------------------------ //常变量说明 //eleSrc :发生事件的元素 //------------------------------------------ eleSrc = ele; eleSrc.className = optDelighted; } //得到定义过的将加入列表的单词 function makeOpt(strWord, iWrdIdx) { var strOptHead, strOptFoot; var strOptWord; //------------------------------------------ //常变量说明 //strOptHead :重定义单词头。字符串型 //strOptFoot :重定义单词尾。字符串型 //strOptWord :重定义单词。字符串型 //------------------------------------------ strOptHead = <div class='optDelighted' onmouseover='lightOpt(this);' onmouseout='delightOpt(this);' ondblclick='removeOpt(this);' wrdIdx=' iWrdIdx '>; strOptFoot = </div>; strOptWord = strOptHead strWord strOptFoot; //alert(strOptWord); return strOptWord; } //删除列表中的单词 function removeOpt(ele) { var eleSrc; var iIndex, iWrdIdx; var astrWords, astrHead, astrFoot; //------------------------------------------ //常变量说明 //eleSrc :发生事件的元素 //iIndex: Number representing vocabulary classification. عدد صحيح //iWrdIdx: The index of words in word array. عدد صحيح //astrWords :某类词汇单词数组。字符串型数组 //astrHead :某类词汇单词数组头部分。字符串型数组 //astrFoot :某类词汇单词数组尾部分。字符串型数组 //------------------------------------------ eleSrc = ele; iIndex = getEleIndex(eleSrc.parentElement); iWrdIdx = parseInt(eleSrc.wrdIdx); //将单词从词汇数组中删去 //showArray(m_astrWords[iIndex]); astrWords = m_astrWords[iIndex].concat(); astrHead = astrWords.slice(0, iWrdIdx); astrFoot = astrWords.slice(iWrdIdx 1); m_astrWords[iIndex] = astrHead.concat(astrFoot); //showArray(astrHead); //showArray(astrFoot); //showArray(m_astrWords[iIndex]); //将剩余的单词重新写入到页面中 valueList(m_astrWords[iIndex], iIndex); txtWord[iIndex].select(); } //--> </script> </head> <body> <!--标题--> <div align=CENTER> <span style=font-size: 20pt; font-weight: BOLD>词语搭配游戏</span> <span class=fontEng2>v1.0</span> </div> <hr style=visibility: HIDDEN> <!--主表格1--> <table border=0 align=CENTER width=80%> <colgroup></colgroup> <colgroup></colgroup> <colgroup></colgroup> <colgroup></colgroup> <colgroup></colgroup> <colgroup></colgroup> <colgroup align=CENTER></colgroup> <colgroup></colgroup> <%For m_iCount = 0 To (m_iPartCnt - 1)%> <tr> <td><%= m_astrSenPart(m_iCount)%></td> <td width=20%><input type=text id=txtWord style=width: 100%></td> <td><button id=btnGetWord style=width: 75px title=将单词保存到内存中>保存</button></td> <td><button id=btnReset style=width: 75px title=从内存中删去当前类别所有的单词>重置</button></td> <td><button id=btnSave style=width: 75px title=将单词保存到文件中>存入</button></td> <td><button id=btnLoad style=width: 75px title=从文件中载入单词>载入</button></td> <td width=15%><label id=lblWordList title=单击固定我>单词列表</label></td> <td> <div id=divWordList class=listHidden></div> 个数:<label id=lblWordCount class=fontEng1><%= 0%></label> </td> </tr > <%Next%> </table> <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> 现在从每堆中抽出一个纸团,就有四个词语,将它们组成一句话,因为是随便抽的,有时能组成很搞笑的句子。 如:陈楠兴奋地在大街上跳夏威夷草裙舞;万民悠闲地在公园里洗澡。^_ </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> 因为是搞笑游戏,所以能使你心情愉快、青春焕发,间接增加找对象的成功率; 因为不用做纸团了,减少了浪费和污染,从而美化了世界环境; 相信还有很多功效,请大家帮我找。哈哈。 </td></tr> </table> </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 > </table> <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> </form > <!--版权--> <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() قاتمة 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