Empfohlen: ASP 3.0 Erweiterte Programmierung (41) 9.2.3 Die Verwendung gespeicherter Prozeduren Die Verwendung gespeicherter Prozeduren ist ein Bereich, in dem Befehlsobjekte angewendet werden. Speichernde Verfahren (manchmal auch Speicherabfragen genannt) sind SQL -Abfrageanweisungen, die in einer Datenbank vordefiniert sind. Warum sollten gespeicherte Verfahren erstellt und verwendet werden, anstatt sie direkt in Code zu verwenden?
Dies ist ein Spiel über Wortcodierung, geschrieben in ASP, VBScript und JavaScript.
Unter Win98 OEM2, PWS und IE5 wurden keine größeren Probleme gefunden.
Wie man verwendet:
Methode 1: Das Verzeichnis Ihres 3W -Dienstes lautet beispielsweise c:/inetpub/wwwroot, erstellen Sie unten ein Verzeichnis wie WordasB. Kopieren Sie die Spieldatei (WordasB.asp) in das Verzeichnis; Geben Sie http: // Ihr Maschinenname/Wordasb/Wordasb.asp oder http://127.0.0.1/wordasb/wordasb.asp ein, und drücken Sie die Eingabetaste, um das Spiel zu starten.
Methode 2: Kopieren Sie die Spieldatei (WordasB.asp) in ein neu erstelltes Verzeichnis. Klicken Sie mit der rechten Maustaste auf das Verzeichnis, wählen Sie Eigenschaften im Menü, klicken Sie auf die Seite Web Sharing-Eigenschaft, klicken Sie auf das Element dieses Ordners und klicken Sie auf OK. Geben Sie http: // Ihr Maschinenname/neue Verzeichnisname/Wordasb.asp oder http://127.0.0.1/ ein. Geben Sie das Spiel ein und starten Sie das Spiel.
HINWEIS: Ihr Computer -Betriebssystem sollte NT- oder Win2000 -Server oder ein anderes Betriebssystem sein, aber PWS ist installiert
Spielmethode:
Klicken Sie auf die Spielanweisungen im Spiel, um zu wissen. Wenn die Seite manchmal leer ist, drücken Sie bitte F5, um sie zu aktualisieren (dies ist derzeit auch der größte Fehler).
Der Code ist wie folgt:
| Das Folgende ist der zitierte Inhalt: <%@ Sprache = vbscript%> <% Option explizit 'Zuletzt aktualisiert von Recon am 16.03.2001 Dim m_ipartcnt Dim m_strprompt Dim m_astrsenPart (), m_astrfilename () Dim m_aStrwords (), m_aiopstatus () '-------------------------------------------------- 'Konstante Variable Beschreibung 'M_ipartcnt: Anzahl der Vokabeln Kategorien. Ganze Zahl 'M_StrPrompt: Eine Eingabeaufforderung nach Abschluss der Dateioperation. String -Typ 'm_astrsenPart: Der Name der Wortschatzklassifizierung. Charakter -Array 'm_astrfilename: zeichnet die Dateinamen verschiedener Wortschatzdateien auf. Charakter -Array 'm_aStrwords: Notieren Sie alle Arten von Vokabeln. Zweidimensionales Charakter-Array 'M_AIOPSTATUS: Notiert den Status nach dem Betrieb in jeder Datei. Ganzzahlarray '-------------------------------------------------- '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) 'Definieren Sie die Namen verschiedener Wortschatzkategorien m_astrsenPart (0) = Betreff m_astrsenPart (1) = adverbiales Grad m_astrsenPart (2) = adverbialer Ort m_astrsenPart (3) = Prädikat 'Definieren Sie die Namen verschiedener Wortschatzdokumente m_astrfilename (0) = who.txt m_astrfilename (1) = wie.txt m_astrfilename (2) = wher.txt m_astrfilename (3) = What.txt If request.servervariables (request_method) = post dann dann 'Wenn die Anforderungsmethode der Seite post ist '*************************** 'Holen Sie sich Clientinformationen '*************************** Dim m_isenPart Dim m_stropway Dim M_BrptedData '-------------------------------------------------- 'Konstante Variable Beschreibung 'M_ISENPART: Zahlen, die die Vokabularklassifizierung darstellen. Ganze Zahl 'Die Vokabularklassifizierung stammt aus dem Array M_astrsenPart 'Mögliche Werte sind: '0: Betreff '1: Adverbial '2: Adverbialer Ort '3: Prädikat 'M_stropway: Dateibetriebsmethode. String -Typ 'Mögliche Werte sind: '1. Speichern: Speichern Sie eine bestimmte Art von Vokabular in einer Datei '2. Saveall: Speichern Sie alle Kategorien des Wortschatzes in eine Datei '3. Laden: Laden Sie einen bestimmten Vokabulartyp aus der Datei '4. Loadall: Laden Sie alle Vokabularkategorien aus der Datei 'M_BRPTEDDATA: Gibt an, ob die diesmal eingereichten Formulardaten dem letzten Mal übereinstimmen. Boolescher Typ 'Mögliche Werte sind: '1. Falsch: Die Formulardaten sind nicht dupliziert '2. True: Die Formulardaten werden wiederholt wiederholt (d. H. Das Formular wird wiederholt übermittelt) '-------------------------------------------------- 'Showform 'So erhalten Sie Benutzeranfragen m_stropway = request.form (txtopway) 'Show (m_stropway) 'Holen Sie sich Wörter in verschiedenen Kategorien Für m_icount = 0 bis (m_iPartcnt - 1) Wenn request.form (txtwords & m_icount) <> dann dann m_aStrwords (m_icount) = split (request.form (txtwords & m_icount),,,) Ende wenn 'Response.write ubound (m_astrwords (m_icount)) & <br> Nächste 'Erkennung der wiederholten Einreichung von Formularen 'Wenn Sitzung (FormInf) = request.form dann '' Das Formular ist wiederholt 'm_brptedData = true 'Anders '' Das Formular ist eine nicht wiederholte Einreichung 'Session (FormInf) = Request.Form 'm_brptedData = false 'Ende wenn 'Show (m_brptedData) '*************************** 'Betätigen Sie die Wortdatei '*************************** 'Wenn m_brptedData = false dann Dim m_icount, m_ierrcnt Dim m_strFilepath '-------------------------------------------------- 'Konstante Variable Beschreibung 'M_ICOUNT: Zähler. Ganze Zahl 'm_ierrcnt: Die Anzahl der Operationen ist fehlgeschlagen. Ganze Zahl 'M_StrFilePath: Notieren Sie den Pfad verschiedener Wortschatzdateien. String -Typ '-------------------------------------------------- »Holen Sie sich den Weg, um die Vokabulardatei zu platzieren m_strFilepath = request.servervariables (path_translated) m_strFilepath = links (m_strFilepath, Instrrev (M_StrFilepath, /)) 'm_strFilepath = m_strFilepath & Words/ 'Show (m_strFilepath) 'Starten Sie die Dateioperation 'Response.write beginnen, Wortdateien zu bedienen <br> Wählen Sie den Fall m_stropway Fall Speicherung 'Speichern Sie Wörter in Datei M_ISENPART = CINT (request.form (txtsenPart))) m_aiopstatus (m_isenPart) = SaveFile (M_ISENPART) 'Entsprechend dem Betriebsstatus erhalten Sie die Eingabeaufforderungsinformationen Wählen Sie den Fall m_aiopstatus (m_isenPart) Fall 0 m_strprompt = [& m_astrsenPart (m_isenpart) &] Einige Wörter wurden erfolgreich in der Datei gespeichert Fall 1 m_strprompt = [& m_astrsenPart (m_isenpart) &] einige Dateien speichern Ende auswählen Fall Saveall 'Speichern Sie alle Kategorien von Wörtern in die Datei m_ierrcnt = 0 Für m_icount = 0 bis (m_iPartcnt - 1) m_aiopstatus (m_icount) = SaveFile (m_icount) Wenn m_aiopstatus (m_icount) = 1 dann dann m_ierrcnt = m_ierrcnt 1 Ende wenn Nächste 'Entsprechend dem Betriebsstatus erhalten Sie die Eingabeaufforderungsinformationen Wählen Sie den Fall m_ierrcnt Fall 0 m_strprompt = Alle Wörterkategorien wurden erfolgreich in der Datei gespeichert Fall m_ipartcnt m_strprompt = Wortdateien in allen Kategorien konnte nicht speichern Fall sonst m_strprompt = wo, Für m_icount = 0 bis (m_iPartcnt - 1) Wenn m_aiopstatus (m_icount) = 1 dann dann m_strprompt = m_strprompt & [& m_astrsenPart (m_icount) &], Ende wenn Nächste m_strprompt = links (m_strprompt, len (m_strprompt) - 1) m_strprompt = m_strprompt und einige Dateien konnten nicht speichern Ende auswählen Falllast 'Laden Sie Wörter aus der Datei M_ISENPART = CINT (request.form (txtsenPart))) m_aiopstatus (m_isenPart) = loadFile (M_ISENPART) 'Entsprechend dem Betriebsstatus erhalten Sie die Eingabeaufforderungsinformationen Wählen Sie den Fall m_aiopstatus (m_isenPart) Fall 0 m_strprompt = [& m_astrsenPart (m_isenpart) &] einige Wörter wurden erfolgreich geladen Fall 1 m_strprompt = [& m_astrsenPart (m_isenpart) &] Einige Dateien existieren nicht und das Laden fällt aus Ende auswählen Falllast 'Laden Sie Wörter aus jeder Datei m_ierrcnt = 0 Für m_icount = 0 bis (m_iPartcnt - 1) m_aiopstatus (m_icount) = loadFile (m_icount) Wenn m_aiopstatus (m_icount) = 1 dann dann m_ierrcnt = m_ierrcnt 1 Ende wenn Nächste 'Entsprechend dem Betriebsstatus erhalten Sie die Eingabeaufforderungsinformationen Wählen Sie den Fall m_ierrcnt Fall 0 m_strprompt = Alle Wörterkategorien wurden erfolgreich geladen Fall m_ipartcnt m_strprompt = Wortdateien in allen Kategorien existieren nicht. Das Laden ist vollständig fehl Fall sonst m_strprompt = wo, Für m_icount = 0 bis (m_iPartcnt - 1) Wenn m_aiopstatus (m_icount) = 1 dann dann m_strprompt = m_strprompt & [& m_astrsenPart (m_icount) &], Ende wenn Nächste m_strprompt = links (m_strprompt, len (m_strprompt) - 1) m_strprompt = m_strprompt und einige Dateien existieren nicht, einige Laden schlägt fehl Ende auswählen Ende auswählen 'Ende wenn Ende wenn 'Response.write ende zum Betrieb von Wortdateien <br> 'Response.write beginnen, Client -Seite zu schreiben <br> %> < html > < Kopf > < Titel > Wort Matching Game </Titel > < Meta name = Generator content = editPlus > < Meta name = Autor content => < meta name = keywords content => < Meta name = Beschreibung Inhalt => <!-Stiltisch-> < style> <!- /*Englische Schrift 1*/// .Fonteng1 { Schriftfamilie: Times New Roman; Schriftstil :; } /*Englische Schrift 2*// .Fonteng2 { Schriftfamilie: Times New Roman; Schriftstil: kursiv; } /*Halten Sie sich an Schriftart*/ .Fontemp { Farbe: Rot; } /*Link*/ .Link { Schriftfamilie: Times New Roman; Schriftstil: kursiv; Textdekoration: Keine; } /* Liste der angezeigten Wörter*/ .LISTSHOWN { Position: absolut; Breite: 140px; Höhe: 200px; Anzeige: Inline; Rand: Lightcoral 1px fest; Hintergrundfarbe: Gainsboro; } /*Versteckte Wortliste*// .listhidden { Position: absolut; Breite: 140px; Höhe: 200px; Anzeige: Keine; Rand: Lightcoral 1px fest; Hintergrundfarbe: Gainsboro; } /*Wortliste behoben*// .Listfixed { Position: absolut; Breite: 140px; Höhe: 200px; Anzeige: Inline; Rand: Rot 1px fest; Hintergrundfarbe: Gainsboro; } /*Hilfsliste zeigte*/ .Helpshown { Position: absolut; Breite: ; Höhe: ; Anzeige: Block; Rand: Lightcoral 1px fest; Hintergrundfarbe: Gainsboro; } /*Versteckte Hilfsliste*// .Helphidden { Position: absolut; Breite: ; Höhe: ; Anzeige: Keine; Rand: Lightcoral 1px fest; Hintergrundfarbe: Gainsboro; } /*Pasted Hilfsliste*// .Helpfixed { Position: absolut; Breite: ; Höhe: ; Anzeige: Block; Rand: Rot 1px fest; Hintergrundfarbe: Gainsboro; } /*Tags hervorgehoben*/ .lblmover { Textdekoration: Keine; Farbe: Lightcoral; Hintergrundfarbe :; } /*Normales Anzeige -Tag*// .lblmout { Textdekoration: Keine; Farbe: ; Hintergrundfarbe :; } /*Klickte Tag*/ .lblclicked { Textdekoration: Unterstreichung; Farbe: Rot; Hintergrundfarbe :; } /* Hervorgehobene Taste*//// .Btnlight { Breite: 105px; Farbe: Blau; Hintergrundfarbe :; } /*Gewöhnliche Anzeigeschaltfläche*// .BTNDLighted { Breite: 105px; Farbe: ; Hintergrundfarbe :; } /* Markiertes Wortlistenelement*// .Optlight { Textdekoration: Unterstreichung; Farbe: Blau; Hintergrundfarbe :; Cursor: Hand; } /*Normal angezeigter Wortlistenelement*// .Optdelighted { Textdekoration: Keine; Farbe: ; Hintergrundfarbe :; Cursor :; } -> </style> <!-Client-Skript-> < script Language = JavaScript> <!- // Kunde öffentliche und Testfunktionen // ********************************************** // Funktionsname: ltrim // Funktion: Entfernen Sie den Speicherplatz auf der linken Seite der Zeichenfolge // Eingabe: 1. Strtemp: Die Zeichenfolge, die regelmäßig ist. String -Typ // Ausgabe: reguläre Zeichenfolge. String -Typ // ********************************************** Funktion LTRIM (STRTEMP) { var icount, ilgth; // ------------------------------------------------------ // Konstante Variable Beschreibung // ICOUNT: Zähler. Ganze Zahl // ilength: Die Länge der Zeichenfolge. Ganze Zahl // ------------------------------------------------------ legth = strtemp.length; für (ICOUNT = 0; ICOUNT < ilength; ICOunt) if (strtemp.charat (icount)! =) return strtemp.substring (icount, ilgth); zurückkehren ; } // ********************************************** // Funktionsname: rtrim // Funktion: Entfernen Sie den Speicherplatz auf der rechten Seite der Zeichenfolge // Eingabe: 1. Strtemp: Die Zeichenfolge, die regelmäßig ist. String -Typ // Ausgabe: reguläre Zeichenfolge. String -Typ // ********************************************** Funktion RTRIM (STRTEMP) { var icount, ilgth; // ------------------------------------------------------ // Konstante Variable Beschreibung // ICOUNT: Zähler. Ganze Zahl // ilength: Die Länge der Zeichenfolge. Ganze Zahl // ------------------------------------------------------ legth = strtemp.length; für (icount = ilength -1; icount> = 0; icount -) if (strtemp.charat (icount)! =) return strtemp.substring (0, icount 1); zurückkehren ; } // ********************************************** // Funktionsname: Trimm // Funktion: Entfernen Sie die Leerzeichen auf beiden Seiten der Zeichenfolge // Eingabe: 1. Strtemp: Die Zeichenfolge, die regelmäßig ist. String -Typ // Ausgabe: reguläre Zeichenfolge. String -Typ // ********************************************** Funktion trim (strtemp) { return rtrim (ltrim (strtemp)); } // 2-Grad-Zahlen in eine 2-stellige Zeichenfolge umwandeln // ********************************************** // Funktionsname: get2bnumstr // Funktion: 2-Bit-Zahlen in 2-Bit-Zahlen-Zeichenfolge umwandeln // Eingabe: 1. Innum: Die zu konvertierende Nummer. Ganze Zahl // Ausgabe: Die konvertierte numerische Zeichenfolge. Ganze Zahl // ********************************************** Funktion get2Bnumstr (innum) { var str2bnum; // ------------------------------------------------------ // Konstante Variable Beschreibung // str2bnum: numerische Zeichenfolge. String -Typ // ------------------------------------------------------ if (parseInt (innumme) < 10) STR2BNUM = 0 in Number; anders str2bnum = innum; return str2bnum; } // ********************************************** // Funktionsfunktion Name: AUFTRAGFUNC // Funktion: Geben Sie die Ereignisbearbeitungsfunktion des Elements an // Eingabe: 1. ELE: Das Element der Ereignishandhabungsfunktion, die angegeben werden soll. Objekttyp // 2. Func: Ereignisbearbeitungsfunktion. Funktional // 3. Ereignis: Eventtyp. String -Typ // Ausgabe: Keine // ********************************************** Funktionsabweis (ELE, Func, Ereignis) { var icount, ielecount; var Strevent; // ------------------------------------------------------ // Konstante Variable Beschreibung // ICOUNT: Zähler. Ganze Zahl // Ielecount: Die Anzahl der Elemente in der Sammlung von Elementen mit demselben Namen. Ganze Zahl // Strevent: Ereignisart. String -Typ // ------------------------------------------------------ if (event == null) Strevent = Onclick; anders Strevent = Ereignis; ielecount = ele.length; if (ielecount == undefiniert) eval (ele. strevent = func); anders für (ICOUNT = 0; ICOUNT < IeleCount; ICOUNT) Eval (ELE [ICOUNT]. Strevent = func); } // ********************************************** // Funktionsname: getELeIndex // Funktion: Holen Sie sich den Index des Elements, in dem das Ereignis in der gleichnamigen Sammlung aufgetreten ist // Eingabe: 1. ELESRC: Das Element, in dem das Ereignis aufgetreten ist. Objekttyp // Ausgabe: Index des Elements, in dem das Ereignis in der gleichnamigen Sammlung aufgetreten ist // ********************************************** Funktion getELeIndex (ELESRC) { var colsrc; var icount, ielecount; // ------------------------------------------------------ // Konstante Variable Beschreibung // colsrc: Sammlung von gleichnamigen Elementen. Objektarray // ICOUNT: Zähler. Ganze Zahl // Ielecount: Die Anzahl der Elemente in der Sammlung von Elementen mit demselben Namen. Ganze Zahl // ------------------------------------------------------ colsrc = eval (elesrc.id); iEleCount = colsrc.length; für (ICOUNT = 0; ICOUNT < IeleCount; ICOUNT) { if (colsrc [icount] == elesrc) Return Icount; } Return -1; } // Zeigen Sie den Wert der konstanten Variablen (zum Debuggen) //! Bereiten Sie sich auf das Löschen vor Funktionshow (Strdef1, Strdef2, Strdef3, Strdef4) { var icount, idefcnt; var strshow, strtemp; idefcnt = 4; strshow = [Konstant variabler Wert]; für (icount = 1; icount < = idefcnt; icount) { strTemp = eval (strdef icount); if (strtemp! = undefined && strtemp! = null) strshow = /n strTemp: eval (strTemp); } Alarm (Strshow); } // ********************************************** // Funktionsname: ShowArray // Funktion: Zeigen Sie Elemente eines eindimensionalen Arrays an (zum Debuggen) // Eingabe: 1. Array: Das eindimensionale Array, das angezeigt werden soll. Array // Ausgabe: Keine // ********************************************** Funktion ShowArray (Array) { var icount, ielecount; var strshow; // ------------------------------------------------------ // Konstante Variable Beschreibung // ICOUNT: Zähler. Ganze Zahl // Ielecount: Die Anzahl der Array -Elemente. Ganze Zahl // Strshow: Eine Zeichenfolge, die aus Array -Elementwerten besteht. String -Typ // ------------------------------------------------------ ielecount = array.length; STRSHOW = Array Länge: Ielecount; strshow = /n ------------------------------- /n; für (ICOUNT = 0; ICOUNT < IeleCount; ICOUNT) { if (typeof (Array [icount]) == Objekt) strshow = array [icount] .id; anders Strshow = Array [ICOUNT]; } Alarm (Strshow); } // ********************************************** // Funktionsname: Show2Darray // Funktion: Zeigen Sie Elemente eines zweidimensionalen Arrays an (zum Debuggen) // Eingabe: 1. Array: Das zweidimensionale Array, das angezeigt werden soll. Array // Ausgabe: Keine // ********************************************** Funktion show2Darray (Array) { var ix, iy, ilen1, ilen2; var strshow; // ------------------------------------------------------ // Konstante Variable Beschreibung // IX: Zähler. Ganze Zahl // iy: Theke. Ganze Zahl // ilen1: Die Anzahl der eindimensionalen Array. Ganze Zahl // ilen2: Die Anzahl der zweidimensionalen Arrays. Ganze Zahl // Strshow: Eine Zeichenfolge, die aus Array -Elementwerten besteht. String -Typ // ------------------------------------------------------ ilen1 = array.length; STRSHOW = Array 1D Länge: ilen1; strshow = /n ---------------------------------; für (ix = 0; ix < ilen1; ix) { strshow = /n; ilen2 = Array [ix] .Length; für (iy = 0; iy < ilen2; iy) strshow = array [ix] [iy]; } Alarm (Strshow); } //-> </script> < script Language = JavaScript> <!- // ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- // window_onload // // Getwort //zurücksetzen //speichern //laden // // Showlist // Hidelist // FixList // Valuelist // // Showhelp // HideHelp // FixHelp // // Resetall // Saveall // loadall //montieren // // LightBtn // Delightn // leuchtend // Delightopt // // makeopt // removeopt // ------------------------------------------------------- var m_ipartcnt; var m_astrsenPart, m_astrwords; var m_strprompt; var m_ilistfixed, m_ihelpfixed; // ------------------------------------------------------ // Konstante Variable Beschreibung // m_ipartcnt: Anzahl der Vokabeln Kategorien. Ganze Zahl // m_astrsenPart: Der Name der Wortschatzklassifizierung. Charakter -Array // m_astrwords: zeichnen Sie verschiedene Vokabeln auf. Zweidimensionales Charakter-Array // M_strprompt: Eingabeaufforderung zur Meldung nach Abschluss der Dateioperation. String -Typ // M_ILISTFIXED: Die Nummer, die die Liste der festen Wörter darstellt. Ganze Zahl // -1 bedeutet, dass keine Wortliste behoben wird // m_ihelpfixed: Die Nummer, die den festen Status der Hilfsliste darstellt. Ganze Zahl // -1 bedeutet, dass die Hilfsliste nicht festgelegt ist // ------------------------------------------------------ window.onload = window_onload; // ------------------------------------------------------- // Initialisieren Sie die Seite Funktion window_onload () { var icount, ielecnt; Var Colbutton; var strhelp; // ------------------------------------------------------ // Konstante Variable Beschreibung // ICOUNT: Zähler. Ganze Zahl // ielecnt: Die Anzahl der Elemente in der Sammlung. Ganze Zahl // Colbutton: Sammlung von Button -Elementen. Objektarray // Strhelp: Hilfedateiinhalte. String -Typ // ------------------------------------------------------ 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); // Erhalten Sie den Namen der Vokabularklassifizierung und des verschiedenen Vokabulars, die geladen wurden <%für m_icount = 0 bis (m_ipartcnt - 1)%> // Holen Sie sich alle Arten von Vokabeln <%if isempty (m_astrwords (m_icount)) = true dann%> m_aStrwords [<%= m_icount%>] = new Array (); <%sonst%> m_aStrwords [<%= m_icount%>] = <%= join (m_astrwords (m_icount),)%>. split (,); <%Ende wenn%> // Erhalten Sie den Namen der Wortschatzklassifizierung m_astrsenPart [<%= m_icount%>] = <%= m_astrsenPart (m_icount)%>; <%Next%> // show2Darray (m_astrwords); // ShowArray (m_astrsenPart); // Schreiben Sie alle Arten von geladenem Vokabular auf die Seite für (icount = 0; icount < m_ipartcnt; icount) Valuelist (m_astrwords [iscount], icount); // Die Hilfedatei laden // strHelp = tBlHelp.outerhtml; // strhelp = divhelp1.innerhtml; //tblhelp.outerhtml =; //divhelp.innerhtml = strHelp; //tblhelp.style.display =; //divhelp.style.display = none; //divhelp.style.left = divhelp1.style.left; // alarm (links: divhelp.style.left /nleft: divhelp1.style.left); // alert (pixellleft: divhelp.style.pixelleft /npixelleft: divhelp1.style.pixelleft); // alarm (posleft: divhelp.style.posleft /nposleft: divhelp1.style.posleft); // alarm (OffsetLeft: divhelp.offsetleft /noffsetLeft: divhelp1.offsetLeft); // alert (ClientLeft: Divhelp.ClientLeft /nclientLeft: Divhelp1.clientleft); // Geben Sie die Veranstaltungsbearbeitungsfunktion des Seitenelements an ordnungsfunc (txtword, GetWord, OnKeypress); ordnungsfunc (btngetWord, GetWord); ordnungsfunc (btnreset, reset); ordnungsfunc (btnsave, save); ordnungsfunc (btnload, last); ordnungsfunc (lblWordList, showlist, onmouseover); ordnungsfunc (LBLWordList, Hidelist, Onmouseout); ordnungsfunc (lblWordList, fixList); ordnungsfunc (lblHelp, showHelp, onmouseover); ordnungsfunc (lblHelp, hideHelp, onmouseout); ordnungsfunc (lblHelp, fixHelp); ordnungsfunc (btnresetall, resetall); ordnungsfunc (btnsaveall, SaveAll); ordnungsfunc (btnloadAll, loadall); ordnungsfunc (btnasb, montieren); colbutton = document.all.tags (button); ielecnt = colbutton.length; // Showarray (Colbutton); // alarm (ielecnt: ielecnt); für (icount = 0; icount < ielecnt; icount) { ordnungsfunc (colbutton [iscount], lightBtn, onmouseover); ordnungsfunc (colbutton [ICOUNT], DelightBtn, Onmouseout); } // Legen Sie den Anfangsstatus der Seite fest if (m_strprompt! =) alert (m_strprompt); txtword [0] .focus (); } // ------------------------------------------------------- // Erhalten Sie das vom Benutzer eingegebene Wort Funktion getWord () { // Nur beim Eingabeglasten oder im Worteingangsfeld drücken // Tun Sie dies beim Drücken der Save -Taste weiter if (window.event.type! = tastePress && window.event.type! zurückkehren; anders if (window.event.type == tastePress && window.event.KeyCode! = 13) return; var elesrc; var iIndex, inxtwrdidx; var strWord; // ------------------------------------------------------ // Konstante Variable Beschreibung // ELESRC: Das Element, in dem das Ereignis stattgefunden hat // iIndex: Nummer, die die Vokabularklassifizierung darstellt. Ganze Zahl // inxtwrdidx: Der Index neuer Wörter in Word -Array. Ganze Zahl // STRWROWD: Das vom Benutzer eingegebene Wort. String -Typ // ------------------------------------------------------ ELESRC = window.event.srcElement; iIndex = getELeIndex (ELESRC); // Index bekommen strWord = trim (txtword [iIndex] .Value); // Erhalten Sie das vom Benutzer eingegebene Wort // Erkennen Sie, ob das eingegebene Wort legal ist // Wenn es sich um ein illegales Wort handelt, beenden Sie if (strWord ==) { // Wenn das eingegebene Wort leer ist oder Space -Zeichenfolge Alarm (Wörter können nicht leer oder speicherschnur sein); txtword [iIndex] .Select (); zurückkehren; } if (strWord.indexof (,)! = -1 || strWord.indexof ()! = -1) { // Wenn das eingegebene Wort Kommas oder Räume enthält Alarm (Wörter können keine Kommas oder Räume enthalten); txtword [iIndex] .Select (); zurückkehren; } // Wörter in Vokabeln speichern inxtwrdidx = m_astrwords [iIndex] .Length; m_aStrwords [iIndex] [inxtwrdidx] = strWord; // ShowArray (m_astrwords [iIndex]); // Wörter auf die Seite schreiben Valuelist (m_astrwords [iIndex], iIndex); txtword [iIndex] .Value =; txtword [iIndex] .focus (); } // ------------------------------------------------------- // Alle Wörter in der aktuellen Kategorie aus dem Speicher löschen Funktion Reset () { var elesrc; var iindex, icount; var strprompt; // ------------------------------------------------------ // Konstante Variable Beschreibung // ELESRC: Das Element, in dem das Ereignis stattgefunden hat // iIndex: Nummer, die die Vokabularklassifizierung darstellt. Ganze Zahl // ICOUNT: Zähler. Ganze Zahl // StrPrompt: Operation -Eingabeaufforderung. String -Typ // ------------------------------------------------------ ELESRC = window.event.srcElement; iIndex = getELeIndex (ELESRC); StrPrompt = Sind Sie sicher, dass Sie alle Wörter im [m_astrsenPart [iIndex]] aus dem Speicher löschen möchten? ; if (window.confirm (strPrompt) == false) return; m_aStrwords [iIndex] = new Array (); Valuelist (m_astrwords [iIndex], iIndex); // ShowArray (m_astrwords [iIndex]); StrPrompt = Wort gelöscht; Alarm (StrPrompt); txtword [iIndex] .Select (); } // ------------------------------------------------------- // Speichern Sie das aktuelle Vokabular der ausgewählten Kategorie in der Datei Funktion Save () { var elesrc; var iindex, icount; // ------------------------------------------------------ // Konstante Variable Beschreibung // ELESRC: Das Element, in dem das Ereignis stattgefunden hat // iIndex: Nummer, die die Vokabularklassifizierung darstellt. Ganze Zahl // ICOUNT: Zähler. Ganze Zahl // ------------------------------------------------------ ELESRC = window.event.srcElement; iIndex = getELeIndex (ELESRC); if (m_astrwords [iIndex] .Length == 0) { // Wenn die aktuelle Anzahl der Wörter in der ausgewählten Kategorie Null ist var strprompt; strprompt = [m_astrsenPart [iIndex]] Der Abschnitt hat jetzt kein optionales Wort. Sind Sie sicher, dass Sie es speichern möchten? ; strprompt = /n (Dies generiert eine leere neue Datei); if (window.confirm (strPrompt) == false) return; } // Speichern Sie alle Wörter im aktuellen Speicher für (icount = 0; icount < m_ipartcnt; icount) eval (frmwords.txtwords icount) .Value = m_astrwords [icount] .Join (,); frmwords.txtsenPart.Value = iIndex; frmwords.txtopway.value = speichern; frmwords.submit (); } // ------------------------------------------------------- // Lesen Sie die Wortsätze der ausgewählten Kategorie aus der Datei Funktionslast () { var elesrc; var iindex, icount; // ------------------------------------------------------ // Konstante Variable Beschreibung // ELESRC: Das Element, in dem das Ereignis stattgefunden hat // iIndex: Nummer, die die Vokabularklassifizierung darstellt. Ganze Zahl // ICOUNT: Zähler. Ganze Zahl // ------------------------------------------------------ ELESRC = window.event.srcElement; iIndex = getELeIndex (ELESRC); // Speichern Sie alle Wörter im aktuellen Speicher für (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 (); } // ------------------------------------------------------- // Wortschatzliste anzeigen Funktionshowlist (iIndex) { // Wenn der Parameter iIndex nicht gegeben ist // Holen Sie sich iIndex if (iIndex == undefiniert) { // Wenn die Wortliste bereits behoben ist, beenden Sie die Funktion if (m_ilistfixed! = -1) return; var elesrc; var iindex; // ------------------------------------------------------ // Konstante Variable Beschreibung // ELESRC: Das Element, in dem das Ereignis stattgefunden hat // iIndex: Nummer, die die Vokabularklassifizierung darstellt. Ganze Zahl // ------------------------------------------------------ ELESRC = window.event.srcElement; iIndex = getELeIndex (ELESRC); } // alarm (iIndex: iIndex); // Wortschatzliste anzeigen //lblWordList Appodex weibliche. //lblWordList Appan. LBLWordList [iIndex] .ClassName = lblMover; divWordList [iIndex] .className = listShown; } // ------------------------------------------------------- // Vokabularliste ausblenden Funktion Hidelist (iIndex) { // Wenn der Parameter iIndex nicht gegeben ist // Holen Sie sich iIndex if (iIndex == undefiniert) { // Wenn die Wortliste bereits behoben ist, beenden Sie die Funktion if (m_ilistfixed! = -1) return; var elesrc; var iindex; // ------------------------------------------------------ // Konstante Variable Beschreibung // ELESRC: Das Element, in dem das Ereignis stattgefunden hat // iIndex: Nummer, die die Vokabularklassifizierung darstellt. Ganze Zahl // ------------------------------------------------------ ELESRC = window.event.srcElement; iIndex = getELeIndex (ELESRC); } // alarm (iIndex: iIndex); // Vokabularliste ausblenden //lblwordlist für -Index weibliche. LBLWordList [iIndex] .ClassName = lblmout; DivWordList [iIndex] .ClassName = listhidden; } // ------------------------------------------------------- // List für Wortschatzer behoben Funktion FixList () { var elesrc; var iindex; // ------------------------------------------------------ // Konstante Variable Beschreibung // ELESRC: Das Element, in dem das Ereignis stattgefunden hat // iIndex: Nummer, die die Vokabularklassifizierung darstellt. Ganze Zahl // ------------------------------------------------------ ELESRC = window.event.srcElement; iIndex = getELeIndex (ELESRC); Schalter (m_ilistfixed) { Fall -1: // Wenn es noch keine Wortliste gibt // die aktuelle Liste beheben m_ilistfixed = iIndex; LBLWordList [iIndex] .ClassName = lblclicked; divWordList [iIndex] .className = listFixed; brechen; case iIndex: // Wenn die Liste fester Word die aktuelle Liste ist // die aktuelle Liste beheben m_ilistfixed = -1; LBLWordList [iIndex] .ClassName = lblMover; divWordList [iIndex] .className = listShown; brechen; Standard: // Wenn die Liste fester Wort nicht die aktuelle Liste ist // Die Liste der festen Korrekturen Hidelist (m_ilistfixed); m_ilistfixed = -1; LBLWordList [iIndex] .ClassName = lblMover; Showlist (iIndex); brechen; } // alert (m_ilistfixed: m_ilistfixed /niIndex: iIndex); } // ------------------------------------------------------- // Wörter schreiben, die in eine bestimmte Art von Wortschatz geladen sind Funktion Valuelist (Awords, IsenPart) { var icount, iwrdcnt; var strlistppt; // ------------------------------------------------------ // Konstante Variable Beschreibung // ICOUNT: Zähler. Ganze Zahl // iwrdcnt: Die Anzahl der Wörter einer bestimmten Art von Wortschatz. Ganze Zahl // STRLISTPPT: Eingabeaufforderung in der Wortliste. String -Typ // ------------------------------------------------------ // Datenvorbereitung iwrdcnt = Awords.length; LBLWORDCOUNT [IsenPart] .InNeText = iWrdcnt; STRLISTPPT = < Div >< span style = 'color: rot; Schriftstil: kursiv; Schriftgröße: 10,5pt; '>; strlistppt = doppelklicken Sie auf das Wort, um es zu löschen </span> </div>; // Wörter zur Liste schreiben if (iwrdcnt! = 0) { divWordList [isenPart] .innerhtml = strlistppt; für (icount = 0; icount < iwrdcnt; icount) divWordList [isenPart] .innerhtml = makeopt (awords [icount], icount); } anders divWordList [isenPart] .innerhtml = strlistppt; } // ------------------------------------------------------- // Zeigen Sie die Hilfsliste Funktion Showhelp () { // Wenn die Hilfsliste behoben wurde, beenden Sie die Funktion if (m_ihelpfixed == 0) return; // Hilfe zeigen lblHelp.className = lblmover; DIVHELP.CLASSNAME = HILFSHOWN; } // ------------------------------------------------------- // Hilfeliste ausblenden Funktion HideHelp () { // Wenn die Hilfsliste behoben wurde, beenden Sie die Funktion if (m_ihelpfixed == 0) return; // Hilfe ausblenden lblHelp.className = lblmout; divhelp.className = helpHidden; } // ------------------------------------------------------- // Hilfsliste festgelegt Funktion FixHelp () { if (m_ihelpfixed == -1) { // Wenn die Hilfsliste nicht behoben wurde // repariere es m_ihelpfixed = 0; lblHelp.className = lblclicked; divhelp.className = helpfixed; } anders { // Wenn die Hilfsliste behoben wurde // es auflösen m_ihelpfixed = -1; lblHelp.className = lblmover; DIVHELP.CLASSNAME = HILFSHOWN; } } // ------------------------------------------------------- // Setzen Sie die Seite in den Anfangszustand zurück Funktion resetall () { var icount; // ------------------------------------------------------ // Konstante Variable Beschreibung // ICOUNT: Zähler. Ganze Zahl // ------------------------------------------------------ für (icount = 0; icount < m_ipartcnt; icount) { TXTWORD [ICOUNT] .Value =; m_aStrwords [ICount] = new Array (); // das Wort Array leeren Valuelist (m_astrwords [iscount], icount); } txtSentce.Value =; txtword [0] .focus (); } // ------------------------------------------------------- // Speichern Sie alle Wörterkategorien in Datei Funktion Saveall () { var icount, iEMptycnt; var strprompt; // ------------------------------------------------------ // Konstante Variable Beschreibung // ICOUNT: Zähler. Ganze Zahl // iEMptycnt: Die Anzahl der Kategorien mit 0 Wörtern. Ganze Zahl // StrPrompt: Operation -Eingabeaufforderung. String -Typ // ------------------------------------------------------ iEMptycnt = 0; für (icount = 0; icount < m_ipartcnt; icount) { // Speichern Sie alle Wörter im aktuellen Speicher eval (frmwords.txtwords icount) .Value = m_astrwords [icount] .Join (,); if (m_astrwords [icount] .Length == 0) IeMptycnt; } // alarm (iEMptycnt: iEMptycnt); if (iEMptycnt > 0) { Switch (iEMptycnt) { Fall m_ipartcnt: strPrompt = Die Anzahl der Vokabeln in allen Kategorien beträgt 0, und die Operation erzeugt m_ipartcnt leere Dateien. strprompt = /n Sind Sie sicher, dass Sie dies tun möchten? ; brechen; Standard: strprompt = wo,; für (icount = 0; icount < m_ipartcnt; icount) if (m_astrwords [icount] .Length == 0) strprompt = [m_astrsenPart [ICOUNT]],; strprompt = strprompt.slice (0, -1); strprompt = Die Anzahl einiger Wörter ist 0; strPrompt = /n operation generiert IEMptyCnt -leere Dateien; strprompt =, bist du sicher, dass du das tun willst? ; } if (window.confirm (strPrompt) == false) return; } frmwords.txtopway.value = SaveAll; frmwords.submit (); } // ------------------------------------------------------- // Laden Sie alle Wörterkategorien aus der Datei Funktion loadAll () { var icount; // ------------------------------------------------------ // Konstante Variable Beschreibung // ICOUNT: Zähler. Ganze Zahl // ------------------------------------------------------ // Speichern Sie alle Wörter im aktuellen Speicher für (icount = 0; icount < m_ipartcnt; icount) eval (frmwords.txtwords icount) .Value = m_astrwords [icount] .join (,) frmwords.txtopway.value = loadAll; frmwords.submit (); } // ------------------------------------------------------- // bitte Vokabularübereinstimmung und einen Satz erhalten Funktion montieren () { var icount, iwrdcnt, irndindex; var Strsenz; // ------------------------------------------------------ // Konstante Variable Beschreibung // ICOUNT: Zähler. Ganze Zahl // iwrdcnt: Die Anzahl der Wörter einer bestimmten Art von Wortschatz. Ganze Zahl // irndindex: zufällig generierter Word -Index. Ganze Zahl // Strsenz: Ein Satz, der aus zufälligen Wörtern in jeder Kategorie des Wortschatzes besteht. String -Typ // ------------------------------------------------------ Strsentence =; für (icount = 0; icount < m_ipartcnt; icount) { // Wenn die aktuelle Anzahl des Wortschatzes in der Kategorie 0 beträgt // Geben Sie eine Eingabeaufforderung an und lassen Sie die Kollokation ab iwrdcnt = m_astrwords [icount] .Length; if (iwrdcnt == 0) { var strprompt; // ------------------------------------------------------ // Konstante Variable Beschreibung // StrPrompt: Operation -Eingabeaufforderung. String -Typ // ------------------------------------------------------ strprompt = [m_astrsenPart [ICount]] Teil hat kein optionales Wort; strprompt = /nPlease geben Sie mindestens ein Wort ein; alert(strPrompt); txtWord[iCount].select(); zurückkehren; } //随机抽取当前类别词汇中的一个单词 //加入到句子中 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. Ganze Zahl //iWrdIdx: The index of words in word array. Ganze Zahl //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%> </Tabelle > <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. Haha 这个版本我大概地测试了一下,没发现大的<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> </Tabelle > </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 > </Tabelle > <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 > </Körper > </html> <% '以下是服务器端脚本 '用到的函数和过程 '************************ '函数名:SaveFile '功能:将某类词汇保存到文件中 'Input: 1. iSenPart: a number representing the vocabulary classification. Ganze Zahl ' 可能的值有: ' 0:主语 ' 1:程度状语 ' 2:地点状语 ' 3:谓语 'Output: The status value after the file operation. Ganze Zahl ' 可能的值有: ' 0:操作成功 ' 1:操作失败 '************************ Function SaveFile(iSenPart) Dim fsoMain, tsfWords Dim iCount, iWrdCnt Dim iOpStatus '------------------------------------------ '常变量说明 'fsoMain :FSO对象 'tsfWords :TEXTSTREAM对象 'iCount : Counter. Ganze Zahl 'iWrdCnt: The number of words of a certain type of vocabulary. Ganze Zahl 'iOpStatus: The status after the file operation is completed. Ganze Zahl '------------------------------------------ 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)) Nächste Ende wenn tsfWords.Close iOpStatus = 0 SaveFile = iOpStatus Endfunktion '************************ '函数名:LoadFile '功能:从文件中载入某类词汇 'Input: 1. iSenPart: a number representing the vocabulary classification. Ganze Zahl ' 可能的值有: ' 0:主语 ' 1:程度状语 ' 2:地点状语 ' 3:谓语 'Output: The status value after the file operation. Ganze Zahl ' 可能的值有: ' 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. Ganze Zahl '------------------------------------------ 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 & , Schleife If strLoaded <> Then strLoaded = Left(strLoaded, Len(strLoaded) - 1) m_astrWords(iSenPart) = Split(strLoaded, ,) Anders m_astrWords(iSenPart) = Empty Ende wenn tsfWords.Close iOpStatus = 0 Anders '如果不存在纪录文件 iOpStatus = 1 Ende wenn LoadFile = iOpStatus Endfunktion %> <% '以下是服务器端脚本 '用于测试的函数和过程 Sub Show(strDef) Response.Write strDef & : & Eval(strDef) & <br> Ende sub Sub ShowMethod() Response.Write Request Method: & Request.ServerVariables(REQUEST_METHOD) & <br> Ende sub Sub ShowForm() Dunkeler Vereisung 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> Nächste Response.Write *********Form End**************<br> Ende sub %> |
分享:ASP 3.0高级编程(十二) 4.2.3 服务器端包含指令的例子本节提供了一些示例页面,可以用来对各种服务器端包含语句进行实验。打开示例网页的子目录Chapter04,显示SSI Directives and the ASP Server Object&rdqu