Recommandé: ASP 3.0 Advanced Programming (41) 9.2.3 L'utilisation des procédures stockées L'utilisation des procédures stockées est une zone dans laquelle les objets de commande sont appliqués. Les procédures stockées (parfois appelées requêtes de stockage) sont des instructions de requête SQL qui sont prédéfinies dans une base de données. Pourquoi les procédures stockées devraient-elles être créées et utilisées au lieu de les utiliser directement dans le code
Ceci est un jeu sur le codage des mots, écrit en ASP, VBScript et JavaScript.
Aucun problème majeur n'a été trouvé sous test sous Win98 OEM2, PWS et IE5.
Comment utiliser:
Méthode 1: Par exemple, le répertoire de votre service 3W est c: / inetpub / wwwroot, créent un répertoire ci-dessous, tel que WordAsb; Copiez le fichier de jeu (wordasb.asp) dans le répertoire; Tapez http: // votre nom de machine / wordasb / wordasb.asp ou http://127.0.0.1/wordasb/wordasb.asp dans la barre d'adresse de IE, et appuyez sur Entrée pour démarrer le jeu.
Méthode 2: Copiez le fichier de jeu (wordasb.asp) dans un répertoire nouvellement créé. Cliquez avec le bouton droit sur le répertoire, sélectionnez Propriétés dans le menu, cliquez sur la page de propriété de partage Web, cliquez sur l'élément de partage de cet dossier et cliquez sur OK. Tapez http: // nom de machine / nouveau nom de répertoire / wordasb.asp ou http://127.0.0.1/ dans la barre d'adresse de IE. Entrez et démarrez le jeu.
Remarque: votre système d'exploitation machine doit être le serveur NT ou Win2000 ou un autre système d'exploitation, mais PWS est installé
Méthode de jeu:
Cliquez sur les instructions du jeu dans le jeu pour savoir; Si la page est parfois vide, veuillez appuyer sur F5 pour le rafraîchir (c'est aussi le plus gros bug actuellement).
Le code est le suivant:
| Ce qui suit est le contenu cité: <% @ language = vbscript% > <% Option explicite 'Dernière mise à jour par Recon le 16/03/2001 Dim M_Ipartcnt Dim m_strprompt Dim m_astrSenPart (), m_astrFileName () Dim m_astrwords (), m_aiopstatus () '------------------------------------------ 'Description variable constante 'M_UMPARTCNT: Nombre de catégories de vocabulaire. Entier 'M_Strprompt: une invite une fois l'opération de fichier terminée. Type de chaîne 'M_ASTRSENPART: Le nom de la classification du vocabulaire. Tableau de caractère 'M_ASTRFILENAME: enregistre les noms de fichiers de divers fichiers de vocabulaire. Tableau de caractère 'M_ASTRWORDS: Enregistrez toutes sortes de vocabulaire. Tableau de caractères bidimensionnel 'M_aiopstatus: enregistre l'état après avoir fonctionné sur chaque fichier. Tableau entier '------------------------------------------ 'Showmethod m_Utrcnt = 4 m_strprompt = Redim M_ASTRSENPART (M_UTARTCNT) Redim m_astrfilename (m_upartcnt) Redim M_ASTRWORDS (M_UTARTCNT) Redim M_aiopstatus (M_Utrcnt) «Définissez les noms de diverses catégories de vocabulaire M_ASTRSENPART (0) = Sujet M_ASTRSENPART (1) = diplôme adverbial M_ASTRSENPART (2) = Adverbial Place M_ASTRSENPART (3) = Prédicat «Définissez les noms de divers documents de vocabulaire m_astrfilename (0) = who.txt m_astrfilename (1) = comment.txt m_astrFileName (2) = où.txt m_astrfilename (3) = quoi.txt Si request.servervariables (request_method) = post alors «Si la méthode de demande de la page est publiée '************************* 'Obtenez les informations du client '************************* Dim m_isenpart Dim m_stropway Dim m_brpteddata '------------------------------------------ 'Description variable constante 'M_isenPart: nombres représentant la classification du vocabulaire. Entier 'La classification du vocabulaire provient du tableau M_ASTRSENPART 'Les valeurs possibles sont: '0: Sujet '1: diplôme adverbial '2: lieu adverbial '3: prédicat 'M_stropway: Méthode de fonctionnement du fichier. Type de chaîne 'Les valeurs possibles sont: '1. Enregistrer: enregistrer un certain type de vocabulaire dans un fichier '2. SAVEALL: Enregistrez toutes les catégories de vocabulaire dans un fichier '3. Chargez: chargez un certain type de vocabulaire à partir du fichier '4. Loadall: Chargez toutes les catégories de vocabulaire à partir du fichier 'M_brptedData: indique si les données de formulaire soumises cette fois sont les mêmes que la dernière fois. Type booléen 'Les valeurs possibles sont: '1. Faux: les données du formulaire ne sont pas dupliquées '2. Vrai: les données du formulaire sont répétées (c'est-à-dire que le formulaire est soumis à plusieurs reprises) '------------------------------------------ 'Showform 'Comment obtenir des demandes d'utilisateurs m_stropway = request.form (txtopway) 'Show (m_stropway) 'Obtenez des mots dans diverses catégories Pour m_icount = 0 à (M_Utrcnt - 1) Si request.form (txtwords & m_icount) <> alors M_ASTRWORDS (M_ICOUNT) = Split (request.form (txtwords & m_icount) ,,) Terminer si 'Response.Write Ubound (M_ASTRWORDS (M_ICOUNT)) & <BR> Suivant «Détection de soumission répétée des formulaires 'Si session (formInf) = request.form alors '' Le formulaire est une soumission répétée 'm_brptedData = true 'Autre '' Le formulaire est une soumission non répétée 'Session (formInf) = request.form 'm_brptedData = false 'Fini si 'Show (m_brpteddata) '************************* 'Faire fonctionner le fichier Word '************************* 'Si m_brpteddata = false alors Dim m_icount, m_ierrcnt Dim M_Strfilepath '------------------------------------------ 'Description variable constante 'M_ICTUNT: COMPTER. Entier 'M_ierrcnt: le nombre de fois que l'opération a échoué. Entier 'M_STRFILEPATH: enregistrez le chemin d'accès de divers fichiers de vocabulaire. Type de chaîne '------------------------------------------ 'Obtenez le chemin pour placer le fichier de vocabulaire m_stralipath = request.servervariables (path_translated) m_stralipath = Left (m_strfilepath, instrrev (m_strfilepath, /)) 'm_stralipath = m_stralipath & words / 'Show (m_strfilepath) 'Démarrer l'opération de fichier 'Response.Write commence à faire fonctionner les fichiers de mots <br> Sélectionnez Case M_stropway Économie de cas 'Enregistrer les mots dans le fichier m_isenPart = Cint (request.form (txtSenPart)) m_aiopstatus (m_isenPart) = SaveFile (m_isenPart) 'Selon l'état de l'opération, obtenez les informations rapides Sélectionnez Case M_aiopStatus (M_isenPart) Cas 0 m_strprompt = [& m_astrSenPart (m_isenPart) et] Certains mots ont été enregistrés avec succès dans le fichier Cas 1 m_strprompt = [& m_astrSenpart (m_isenpart) et] enregistrer certains fichiers échoué Fin de sélection Cas de cas 'Enregistrer toutes les catégories de mots dans le fichier m_ierrcnt = 0 Pour m_icount = 0 à (M_Utrcnt - 1) m_aiopstatus (m_icount) = SaveFile (m_icount) Si m_aiopstatus (m_icount) = 1 alors m_ierrcnt = m_ierrcnt 1 Terminer si Suivant 'Selon l'état de l'opération, obtenez les informations rapides Sélectionnez Case M_ierrcnt Cas 0 m_strprompt = toutes les catégories de mots ont été enregistrées avec succès dans le fichier Cas m_upartcnt m_strprompt = word les fichiers dans toutes les catégories n'ont pas réussi à enregistrer Cas d'autre m_strprompt = où, Pour m_icount = 0 à (M_Utrcnt - 1) Si m_aiopstatus (m_icount) = 1 alors m_strprompt = m_strprompt & [& m_astrSenPart (m_icount) &], Terminer si Suivant m_strprompt = Left (m_strprompt, len (m_strprompt) - 1) m_strprompt = m_strprompt et certains fichiers n'ont pas réussi à enregistrer Fin de sélection Charge de casse 'Chargez les mots du fichier m_isenPart = Cint (request.form (txtSenPart)) m_aiopstatus (m_isenPart) = loadfile (m_isenPart) 'Selon l'état de l'opération, obtenez les informations rapides Sélectionnez Case M_aiopStatus (M_isenPart) Cas 0 m_strprompt = [& m_astrSenPart (m_isenpart) et] certains mots ont été chargés avec succès Cas 1 m_strprompt = [& m_astrSenPart (m_isenPart) et] certains fichiers n'existent pas et le chargement échoue Fin de sélection Casse de chargement 'Chargez les mots de chaque fichier m_ierrcnt = 0 Pour m_icount = 0 à (M_Utrcnt - 1) m_aiopstatus (m_icount) = loadfile (m_icount) Si m_aiopstatus (m_icount) = 1 alors m_ierrcnt = m_ierrcnt 1 Terminer si Suivant 'Selon l'état de l'opération, obtenez les informations rapides Sélectionnez Case M_ierrcnt Cas 0 m_strprompt = toutes les catégories de mots ont été chargées avec succès Cas m_upartcnt m_strprompt = word que les fichiers dans toutes les catégories n'existent pas, le chargement échoue complètement Cas d'autre m_strprompt = où, Pour m_icount = 0 à (M_Utrcnt - 1) Si m_aiopstatus (m_icount) = 1 alors m_strprompt = m_strprompt & [& m_astrSenPart (m_icount) &], Terminer si Suivant m_strprompt = Left (m_strprompt, len (m_strprompt) - 1) m_strprompt = m_strprompt et certains fichiers n'existent pas, un certain chargement échoue Fin de sélection Fin de sélection 'Fini si Terminer si 'Response.write end pour faire fonctionner les fichiers de mots <br> 'Response.Write commence à écrire la page du client <br> % > < html > < tête > < Titre > mot de correspondance mot < / titre > < Meta Name = Generator Content = EditPlus > < Meta name = contenu de l'auteur => < Meta name = Mots-clés Contenu => < Meta name = Description Content => <! - Table de style -> < Style> <! - / * Font anglais 1 * / .fonteng1 { Font-Family: Times New Roman; style de police :; } / * Font anglais 2 * / .fonteng2 { Font-Family: Times New Roman; Style de police: italique; } / * Adhérer à la police * / .fonemp { Couleur: rouge; } /*Lien*/ .lien { Font-Family: Times New Roman; Style de police: italique; Décoration du texte: aucune; } / * Liste des mots affichés * / .Listhown { Position: absolue; Largeur: 140px; hauteur: 200px; Affichage: en ligne; Border: Lightcoral 1px solide; Color en arrière-plan: Gainsboro; } / * Liste de mots cachée * / . { Position: absolue; Largeur: 140px; hauteur: 200px; Affichage: aucun; Border: Lightcoral 1px solide; Color en arrière-plan: Gainsboro; } / * Correction de la liste des mots * / .Listfixed { Position: absolue; Largeur: 140px; hauteur: 200px; Affichage: en ligne; Border: Solide rouge 1px; Color en arrière-plan: Gainsboro; } / * A montré la liste d'aide * / . { Position: absolue; largeur: ; hauteur: ; Affichage: bloc; Border: Lightcoral 1px solide; Color en arrière-plan: Gainsboro; } / * Liste d'aide cachée * / . { Position: absolue; largeur: ; hauteur: ; Affichage: aucun; Border: Lightcoral 1px solide; Color en arrière-plan: Gainsboro; } / * Liste d'aide épinglée * / . { Position: absolue; largeur: ; hauteur: ; Affichage: bloc; Border: Solide rouge 1px; Color en arrière-plan: Gainsboro; } / * Tags mis en évidence * / .lblmover { Décoration du texte: aucune; Couleur: LightCoral; Color d'arrière-plan :; } / * Balise d'affichage normale * / .lblmout { Décoration du texte: aucune; couleur: ; Color d'arrière-plan :; } / * Cliquez sur le balise * / .lblclicked { Décoration du texte: soulignement; Couleur: rouge; Color d'arrière-plan :; } / * Bouton surligné * / .btnlighted { Largeur: 105px; Couleur: bleu; Color d'arrière-plan :; } / * Bouton d'affichage ordinaire * / .Btndet { Largeur: 105px; couleur: ; Color d'arrière-plan :; } / * Élément de liste de mots mis en surbrillance * / .optlighted { Décoration du texte: soulignement; Couleur: bleu; Color d'arrière-plan :; curseur: main; } / * Élément de liste de mots affichée normale * / . { Décoration du texte: aucune; couleur: ; Color d'arrière-plan :; curseur :; } -> < / style> <! - Script client -> < Script Language = JavaScript> <! - // Fonctions publiques et tests du client // *************************************** // Nom de la fonction: ltrim // Fonction: supprimez l'espace sur le côté gauche de la chaîne // Entrée: 1. StrTemp: la chaîne à être régulière. Type de chaîne // Sortie: chaîne régulière. Type de chaîne // *************************************** fonction ltrim (strTemp) { var icount, ilength; // ------------------------------------------ // Description variable constante // iCount: compteur. Entier // iLength: la longueur de la chaîne. Entier // ------------------------------------------ iLength = strTemp.length; pour (iCount = 0; iCount < iLength; iCount) if (strTemp.Charat (iCount)! =) return StrTemp.SubString (iCount, iLength); retour ; } // *************************************** // Nom de la fonction: Rtrim // Fonction: supprimez l'espace sur le côté droit de la chaîne // Entrée: 1. StrTemp: la chaîne à être régulière. Type de chaîne // Sortie: chaîne régulière. Type de chaîne // *************************************** fonction rtrim (strTemp) { var icount, ilength; // ------------------------------------------ // Description variable constante // iCount: compteur. Entier // iLength: la longueur de la chaîne. Entier // ------------------------------------------ iLength = strTemp.length; pour (iCount = iLength - 1; iCount> = 0; iCount -) if (strTemp.Charat (iCount)! =) return StrTemp.Substring (0, iCount 1); retour ; } // *************************************** // Nom de la fonction: garniture // Fonction: Retirez les espaces des deux côtés de la chaîne // Entrée: 1. StrTemp: la chaîne à être régulière. Type de chaîne // Sortie: chaîne régulière. Type de chaîne // *************************************** garniture de fonction (strtemp) { return rtrim (ltrim (strTemp)); } // Convertir les numéros à 2 chiffres en chaîne à 2 chiffres // *************************************** // Nom de la fonction: get2bnumstr // Fonction: convertir les numéros 2 bits en chaînes de numéros 2 bits // Entrée: 1. INUMBER: Le nombre à convertir. Entier // Sortie: la chaîne numérique convertie. Entier // *************************************** fonction get2bnumstr (inumber) { var str2bnum; // ------------------------------------------ // Description variable constante // str2bnum: chaîne numérique. Type de chaîne // ------------------------------------------ if (parseint (inumber) < 10) str2bnum = 0 inume; autre str2bnum = inumber; retour str2bnum; } // *************************************** // Func Fonction Nom: AssignFunc // Fonction: spécifiez la fonction de gestion des événements de l'élément // Entrée: 1. Ele: l'élément de la fonction de gestion des événements à spécifier. Type d'objet // 2. Func: fonction de gestion des événements. Fonctionnel // 3. Événement: type d'événement. Type de chaîne // sortie: aucun // *************************************** fonction AssignFunc (ele, func, événement) { var iCount, ieleCount; var strevent; // ------------------------------------------ // Description variable constante // iCount: compteur. Entier // ieleCount: le nombre d'éléments dans la collection d'éléments avec le même nom. Entier // Strevent: type d'événement. Type de chaîne // ------------------------------------------ if (événement == null) Strevent = onclick; autre Strevent = événement; ieleCount = ele.length; if (ieleCount == Undefined) eval (ele. strevent = func); autre pour (iCount = 0; iCount < ieleCount; iCount) eval (ele [icount]. Strevent = func); } // *************************************** // Nom de la fonction: GeteleIndex // Fonction: Obtenez l'index de l'élément où l'événement s'est produit dans la collection du même nom // Entrée: 1. Elesrc: l'élément où l'événement s'est produit. Type d'objet // Sortie: index de l'élément où l'événement s'est produit dans la collecte du même nom // *************************************** fonction geteleIndex (elesrc) { var colsrc; var iCount, ieleCount; // ------------------------------------------ // Description variable constante // COLSRC: collection d'éléments du même nom. Tableau de type objet // iCount: compteur. Entier // ieleCount: le nombre d'éléments dans la collection d'éléments avec le même nom. Entier // ------------------------------------------ colsrc = eval (elesrc.id); ieleCount = colsrc.length; pour (iCount = 0; iCount < ieleCount; iCount) { if (colsrc [iCount] == elesrc) renvoyer iCount; } retour -1; } // montre la valeur de la variable constante (pour le débogage) //! Préparez-vous à supprimer Fonction Show (Strdef1, Strdef2, Strdef3, Strdef4) { var iCount, idefcnt; var strShow, strTEmp; idefcnt = 4; StrShow = [Valeur variable constante]; pour (iCount = 1; iCount < = idefcnt; iCount) { strTemp = eval (Strdef iCount); if (strTemp! = Undefined && strTemp! = null) StrShow = / N StrTemp: EVAL (StrTemp); } alerte (strShow); } // *************************************** // Nom de la fonction: ShowArray // Fonction: Afficher les éléments du tableau unidimensionnel (pour le débogage) // Entrée: 1. Array: Le tableau unidimensionnel à afficher. Tableau // sortie: aucun // *************************************** fonction showArray (tableau) { var iCount, ieleCount; var strShow; // ------------------------------------------ // Description variable constante // iCount: compteur. Entier // ieleCount: le nombre d'éléments de tableau. Entier // StrShow: une chaîne composée de valeurs d'élément de tableau. Type de chaîne // ------------------------------------------ ieleCount = array.length; StrShow = Longueur du tableau: ieleCount; strShow = / n ----------------------------------- / n; pour (iCount = 0; iCount < ieleCount; iCount) { if (typeof (array [iCount]) == objet) StrShow = Array [iCount] .id; autre StrShow = Array [iCount]; } alerte (strShow); } // *************************************** // Nom de la fonction: show2darray // Fonction: afficher les éléments d'un tableau bidimensionnel (pour le débogage) // Entrée: 1. Array: Le tableau bidimensionnel à afficher. Tableau // sortie: aucun // *************************************** fonction show2darray (array) { var ix, iy, ilen1, ilen2; var strShow; // ------------------------------------------ // Description variable constante // ix: compteur. Entier // iy: compteur. Entier // ilen1: le nombre de tableau unidimensionnel. Entier // ilen2: le nombre de tableaux bidimensionnels. Entier // StrShow: une chaîne composée de valeurs d'élément de tableau. Type de chaîne // ------------------------------------------ ilen1 = array.length; StrShow = Array 1D Longueur: Ilen1; StrShow = / N ---------------------------------; pour (ix = 0; ix < ilen1; ix) { strShow = / n; ilen2 = array [ix] .length; pour (iy = 0; iy < ilen2; iy) strShow = array [ix] [iy]; } alerte (strShow); } // -> < / script> < Script Language = JavaScript> <! - // --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- // window_onload // // getword //réinitialiser //sauvegarder //charger // // Showlist // Hidelist // FixList // ValueList // // showhelp // hidehelp // Fixhelp // // Réinitialisation // SAVEALL // Loadall //assembler // // Lightbtn // délimidité // Lightopt // délidopt // // Makeopt // supprimer // ----------------------------------------------------------- var m_Utrcnt; var M_ASTRSENPART, M_ASTRWORDS; var m_strprompt; var m_ilistfixed, m_ihelpfixed; // ------------------------------------------ // Description variable constante // M_UMPARTCNT: Nombre de catégories de vocabulaire. Entier // M_ASTRSENPART: Le nom de la classification du vocabulaire. Tableau de caractère // M_ASTRWORDS: Enregistrez divers vocabulaires. Tableau de caractères bidimensionnel // m_strprompt: message rapide après la fin du fonctionnement du fichier. Type de chaîne // m_ilistfixed: le nombre représentant la liste de mots fixes. Entier // -1 signifie qu'aucune liste de mots n'est fixée // m_ihelpfixed: le nombre qui représente l'état fixe de la liste d'aide. Entier // -1 signifie que la liste d'aide n'est pas réparée // ------------------------------------------ window.onload = window_onload; // ----------------------------------------------------------- // initialise la page function window_onload () { var iCount, ielecnt; var Colbutton; var strhelp; // ------------------------------------------ // Description variable constante // iCount: compteur. Entier // ielecnt: le nombre d'éléments dans la collection. Entier // Colbutton: collection d'éléments de bouton. Tableau de type objet // strhelp: aider le contenu de fichier. Type de chaîne // ------------------------------------------ m_Utrcnt = <% = m_Ipartcnt%>; m_strprompt = <% = m_strprompt%>; m_ilistFixed = -1; m_ihelpfixed = -1; m_astrSenPart = new Array (); m_astrwords = new Array (); // alert (M_Utrcnt: m_Ipartcnt / nm_strprompt: m_strprompt); // obtient le nom de la classification du vocabulaire et les différents vocabulaires qui ont été chargés <% pour m_icount = 0 à (M_Utrcnt - 1)%> // Obtenez toutes sortes de vocabulaire chargé <% si isempty (m_astrwords (m_icount)) = true alors%> M_ASTRWORDS [<% = m_icount%>] = new Array (); <% else%> M_ASTRWORDS [<% = M_ICTER%>] = <% = join (M_ASTRWORDS (M_ICOUNT) ,,)%>. Split (,); <% fin si%> // Obtenez le nom de la classification du vocabulaire M_ASTRSENPART [<% = M_ICTUNT%>] = <% = M_ASTRSENPART (M_ICOUNT)%>; <% Next%> // show2dArray (M_ASTRWORDS); // showArray (M_ASTRSENPART); // Écrivez toutes sortes de vocabulaire chargé sur la page pour (iCount = 0; iCount < M_UTARTCNT; iCount) VALUELIST (M_ASTRWORDS [iCount], iCount); // Chargez le fichier d'aide // strhelp = tblhelp.outerhtml; // strhelp = divhelp1.innerhtml; //tblhelp.outerhtml =; //divhelp.innerhtml = strhelp; //tblhelp.style.display =; //divhelp.style.display = aucun; //divhelp.style.left = divhelp1.style.left; // alerte (gauche: divhelp.style.left / nleft: divhelp1.style.left); // alert (pixelleft: divhelp.style.pixelleft / npixelleft: divhelp1.style.pixelleft); // alerte (posleft: divhelp.style.posleft / nposleft: divhelp1.style.posleft); // alert (Offsetleft: divhelp.offsetleft / noffsetleft: divhelp1.offsetleft); // alerte (clientleft: divhelp.clientleft / nclientleft: divhelp1.clientleft); // spécifie la fonction de gestion des événements de l'élément de page AssignFunc (txtword, getword, onKeyPress); AssignFunc (btngetword, getword); AssignFunc (btnreset, reset); AssignFunc (BTNSAVE, SAVE); AssignFunc (btnload, charge); AssignFunc (LBLWordList, ShowList, OnMouseOver); AssignFunc (LBLWordList, HideList, OnMouseout); AssignFunc (LBLWordList, FixList); AssignFunc (lblHelp, showhelp, onMouseOver); AssignFunc (lblHelp, hidehelp, onMouseout); AssignFunc (LBLHELP, FIXHELP); AssignFunc (btnresetall, resetall); AssignFunc (BTNSAVEALL, SAVEALL); AssignFunc (btnloadall, loadall); AssignFunc (BTNASB, assemble); colbutton = document.all.tags (bouton); ielecnt = colbutton.length; // showArray (Colbutton); // alerte (ielecnt: ielecnt); pour (iCount = 0; iCount < ielecnt; iCount) { AssignFunc (ColButton [iCount], LightBtn, OnMouseOver); AssignFunc (Colbutton [iCount], Delightbtn, OnMouseout); } // Définissez l'état initial de la page if (m_strprompt! =) alert (m_strprompt); txtword [0] .focus (); } // ----------------------------------------------------------- // Obtenez le mot saisi par l'utilisateur fonction getword () { // uniquement lorsque vous appuyez sur Entrée ou dans la boîte d'entrée Word // Continuez à le faire lorsque vous appuyez sur le bouton Enregistrer if (window.event.type! = keypress && window.event.type! = cliquez) retour; autre if (window.event.type == keypress && window.event.keycode! = 13) return; var elesrc; var iindex, inxtwrdidx; var strword; // ------------------------------------------ // Description variable constante // elesrc: l'élément où l'événement s'est produit // iindex: nombre représentant la classification du vocabulaire. Entier // inxtwrdidx: l'index des nouveaux mots dans le tableau des mots. Entier // Strword: le mot entré par l'utilisateur. Type de chaîne // ------------------------------------------ elesrc = window.event.srcelement; iindex = geteleIndex (elesrc); // Obtenez l'index strword = trim (txtword [iindex] .value); // Obtenez le mot saisi par l'utilisateur // détecter si le mot entré est légal // s'il s'agit d'un mot illégal, sortez if (strword ==) { // Si le mot entré est vide ou une chaîne d'espace alerte (les mots ne peuvent pas être vides ou une chaîne d'espace); txtword [iIndex] .Select (); retour; } if (strword.indexof (,)! = -1 || strword.indexof ()! = -1) { // Si le mot entré contient des virgules ou des espaces alerte (les mots ne peuvent pas contenir de virgules ou d'espaces); txtword [iIndex] .Select (); retour; } // Enregistrer les mots dans le tableau de vocabulaire inxtwrdidx = m_astrwords [iindex] .length; M_ASTRWORDS [iIndex] [inxtWrdidx] = Strword; // showArray (M_ASTRWORDS [iIndex]); // Écrivez des mots sur la page ValuElist (M_ASTRWORDS [iindex], iindex); txtword [iindex] .value =; txtword [iindex] .focus (); } // ----------------------------------------------------------- // Supprimer tous les mots de la catégorie actuelle de la mémoire fonction reset () { var elesrc; var iindex, iCount; var strprompt; // ------------------------------------------ // Description variable constante // elesrc: l'élément où l'événement s'est produit // iindex: nombre représentant la classification du vocabulaire. Entier // iCount: compteur. Entier // strPrompt: invite de fonctionnement. Type de chaîne // ------------------------------------------ elesrc = window.event.srcelement; iindex = geteleIndex (elesrc); strPrompt = êtes-vous sûr de vouloir effacer tous les mots de la partie [m_astrSenPart [iindex]] de la mémoire? ; if (window.confirm (strPrompt) == false) return; m_astrwords [iindex] = new Array (); ValuElist (M_ASTRWORDS [iindex], iindex); // showArray (M_ASTRWORDS [iIndex]); strPrompt = mot effacé; alerte (strprompt); txtword [iIndex] .Select (); } // ----------------------------------------------------------- // Enregistrez le vocabulaire actuel de la catégorie sélectionnée dans le fichier fonction Save () { var elesrc; var iindex, iCount; // ------------------------------------------ // Description variable constante // elesrc: l'élément où l'événement s'est produit // iindex: nombre représentant la classification du vocabulaire. Entier // iCount: compteur. Entier // ------------------------------------------ elesrc = window.event.srcelement; iindex = geteleIndex (elesrc); if (m_astrwords [iindex] .length == 0) { // Si le nombre actuel de mots dans la catégorie sélectionnée est nul var strprompt; Strprompt = [M_ASTRSENPART [IINDEX]] La section n'a plus de mot facultatif, êtes-vous sûr de vouloir l'enregistrer? ; strPrompt = / n (cela générera un nouveau fichier vide); if (window.confirm (strPrompt) == false) return; } // Enregistrer tous les mots dans la mémoire actuelle pour (iCount = 0; iCount < M_UTARTCNT; iCount) eval (frmwords.txtwords iCount) .value = m_astrwords [iCount] .join (,); Frmwords.txtSenPart.Value = iIndex; frmwords.txtopway.value = sauver; Frmwords.Submit (); } // ----------------------------------------------------------- // Lire les enregistrements de mots de la catégorie sélectionnée dans le fichier Fonction Load () { var elesrc; var iindex, iCount; // ------------------------------------------ // Description variable constante // elesrc: l'élément où l'événement s'est produit // iindex: nombre représentant la classification du vocabulaire. Entier // iCount: compteur. Entier // ------------------------------------------ elesrc = window.event.srcelement; iindex = geteleIndex (elesrc); // Enregistrer tous les mots dans la mémoire actuelle pour (iCount = 0; iCount < M_UTARTCNT; iCount) eval (frmwords.txtwords iCount) .value = m_astrwords [iCount] .join (,) Frmwords.txtSenPart.Value = iIndex; frmwords.txtopway.value = charge; Frmwords.Submit (); } // ----------------------------------------------------------- // montre la liste de vocabulaire Fonction ShowList (iindex) { // Si le paramètre Iindex n'est pas donné // Obtenez iindex if (iindex == Undefined) { // Si la liste des mots est déjà fixe, quittez la fonction if (m_ilistfixed! = -1) return; var elesrc; var iindex; // ------------------------------------------ // Description variable constante // elesrc: l'élément où l'événement s'est produit // iindex: nombre représentant la classification du vocabulaire. Entier // ------------------------------------------ elesrc = window.event.srcelement; iindex = geteleIndex (elesrc); } // alerte (iindex: iindex); // montre la liste de vocabulaire //lblwordList ° IIndex.InnerText = [lblwordList [iindex] .InnerText]; //lblwordList@Index de.InnerText = lblwordList [iindex] .InnerText >; lblwordList [iindex] .classname = lblmover; divwordList [iindex] .className = listShown; } // ----------------------------------------------------------- // Masquer la liste du vocabulaire Fonction HideList (iindex) { // Si le paramètre Iindex n'est pas donné // Obtenez iindex if (iindex == Undefined) { // Si la liste des mots est déjà fixe, quittez la fonction if (m_ilistfixed! = -1) return; var elesrc; var iindex; // ------------------------------------------ // Description variable constante // elesrc: l'élément où l'événement s'est produit // iindex: nombre représentant la classification du vocabulaire. Entier // ------------------------------------------ elesrc = window.event.srcelement; iindex = geteleIndex (elesrc); } // alerte (iindex: iindex); // Masquer la liste du vocabulaire //lblwordList ·iIndex Lord.InnerText = lblwordList [iIndex] .InnerText.slice (0, -1); lblwordList [iindex] .classname = lblmout; divwordList [iindex] .classname = listHidden; } // ----------------------------------------------------------- // Liste de vocabulaire fixe fonction FixList () { var elesrc; var iindex; // ------------------------------------------ // Description variable constante // elesrc: l'élément où l'événement s'est produit // iindex: nombre représentant la classification du vocabulaire. Entier // ------------------------------------------ elesrc = window.event.srcelement; iindex = geteleIndex (elesrc); Switch (M_ilistFixed) { cas -1: // s'il n'y a pas encore de liste de mots // Correction de la liste actuelle m_ilistFixed = iIndex; lblwordList [iindex] .className = lblClicked; divwordList [iindex] .className = listFixed; casser; cas Iindex: // Si la liste de mots fixes est la liste actuelle // résoudre la liste actuelle m_ilistFixed = -1; lblwordList [iindex] .classname = lblmover; divwordList [iindex] .className = listShown; casser; défaut: // Si la liste de mots fixes n'est pas la liste actuelle // la liste des correctifs fixes HideList (M_ilistFixed); m_ilistFixed = -1; lblwordList [iindex] .classname = lblmover; showlist (iindex); casser; } // alert (m_ilistfixed: m_ilistfixed / niIndex: iIndex); } // ----------------------------------------------------------- // Écrivez des mots chargés dans un certain type de vocabulaire fonction ValueList (Awords, Isenpart) { var iCount, iwrdcnt; var strListppt; // ------------------------------------------ // Description variable constante // iCount: compteur. Entier // iwrdcnt: le nombre de mots d'un certain type de vocabulaire. Entier // strListppt: invite dans la liste des mots. Type de chaîne // ------------------------------------------ // Préparation des données iwrdcnt = awords.length; lblwordCount [iSenPart] .InnerText = iwrdcnt; strListppt = < div >< span style = 'couleur: rouge; Style de police: italique; taille de police: 10.5pt; '>; strListppt = double-cliquez sur le mot pour le supprimer </span> </div>; // Écrivez des mots à lister if (iwrdcnt! = 0) { divwordList [iSenPart] .InnerHtml = strListppt; pour (iCount = 0; iCount < iwrdcnt; iCount) divwordList [iSenPart] .InnerHtml = MakeOPT (awords [iCount], iCount); } autre divwordList [iSenPart] .InnerHtml = strListppt; } // ----------------------------------------------------------- // Afficher la liste d'aide fonction showhelp () { // Si la liste d'aide a été corrigée, quittez la fonction if (m_ihelpfixed == 0) return; // montre l'aide lblhelp.classname = lblmover; divhelp.classname = helpShown; } // ----------------------------------------------------------- // masquer la liste d'aide fonction hidehelp () { // Si la liste d'aide a été corrigée, quittez la fonction if (m_ihelpfixed == 0) return; // masquer l'aide lblhelp.classname = lblmout; divhelp.classname = helfhidden; } // ----------------------------------------------------------- // Correction de la liste d'aide fonction fixhelp () { if (m_ihelpfixed == -1) { // Si la liste d'aide n'a pas été corrigée // le réparez m_ihelpfixed = 0; lblhelp.classname = lblClicked; divhelp.classname = helpFixed; } autre { // Si la liste d'aide a été corrigée // Résolvez-le m_ihelpfixed = -1; lblhelp.classname = lblmover; divhelp.classname = helpShown; } } // ----------------------------------------------------------- // Réinitialise la page à l'état initial fonction resetall () { var iCount; // ------------------------------------------ // Description variable constante // iCount: compteur. Entier // ------------------------------------------ pour (iCount = 0; iCount < M_UTARTCNT; iCount) { txtword [iCount] .value =; M_ASTRWORDS [iCount] = new Array (); // vide le tableau des mots VALUELIST (M_ASTRWORDS [iCount], iCount); } txtSentence.value =; txtword [0] .focus (); } // ----------------------------------------------------------- // Enregistrer toutes les catégories de mots dans le fichier fonction SAVEALL () { var iCount, iEmptycnt; var strprompt; // ------------------------------------------ // Description variable constante // iCount: compteur. Entier // iEmpTyCnt: le nombre de catégories avec 0 mots. Entier // strPrompt: invite de fonctionnement. Type de chaîne // ------------------------------------------ iEmptycnt = 0; pour (iCount = 0; iCount < M_UTARTCNT; iCount) { // Enregistrer tous les mots dans la mémoire actuelle eval (frmwords.txtwords iCount) .value = m_astrwords [iCount] .join (,); if (m_astrwords [iCount] .length == 0) IEMPTYCNT; } // alerte (iEmpTycnt: iEmpTyCnt); if (iEmptycnt > 0) { Switch (iEmptycnt) { cas m_upartcnt: strPrompt = le nombre de mots de vocabulaire dans toutes les catégories est 0, et l'opération produira des fichiers vides m_upartcnt; strprompt = / n Êtes-vous sûr de vouloir faire cela? ; casser; défaut: strprompt = où,; pour (iCount = 0; iCount < M_UTARTCNT; iCount) if (m_astrwords [iCount] .length == 0) strprompt = [m_astrSenPart [iCount]],; strPrompt = strPrompt.slice (0, -1); strPrompt = le nombre de certains mots est 0; L'opération Strprompt = / N générera des fichiers vides iEmpTyCnt; strprompt =, êtes-vous sûr de vouloir faire cela? ; } if (window.confirm (strPrompt) == false) return; } Frmwords.txtopway.value = SAVEALL; Frmwords.Submit (); } // ----------------------------------------------------------- // Chargez toutes les catégories de mots du fichier fonction loadall () { var iCount; // ------------------------------------------ // Description variable constante // iCount: compteur. Entier // ------------------------------------------ // Enregistrer tous les mots dans la mémoire actuelle pour (iCount = 0; iCount < M_UTARTCNT; iCount) eval (frmwords.txtwords iCount) .value = m_astrwords [iCount] .join (,) frmwords.txtopway.value = loadall; Frmwords.Submit (); } // ----------------------------------------------------------- // Veuillez faire un match de vocabulaire et obtenir une phrase fonction assemble () { var iCount, iwrdcnt, irndindex; var strsence; // ------------------------------------------ // Description variable constante // iCount: compteur. Entier // iwrdcnt: le nombre de mots d'un certain type de vocabulaire. Entier // irndindex: index de mots généré au hasard. Entier // Strsentence: une phrase composée de mots aléatoires dans chaque catégorie de vocabulaire. Type de chaîne // ------------------------------------------ strsence =; pour (iCount = 0; iCount < M_UTARTCNT; iCount) { // Si le nombre actuel de vocabulaire en catégorie est 0 // donne une invite et abandonnez la collocation iwrdcnt = m_astrwords [iCount] .Length; if (iwrdcnt == 0) { var strprompt; // ------------------------------------------ // Description variable constante // strPrompt: invite de fonctionnement. Type de chaîne // ------------------------------------------ strPrompt = [m_astrSenPart [iCount]] La partie n'a pas de mot facultatif; strprompt = / nplease Entrez au moins un mot; alerte (strprompt); txtWord[iCount].select(); retour; } //随机抽取当前类别词汇中的一个单词 //加入到句子中 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. Entier //iWrdIdx: The index of words in word array. Entier //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> < / tête > <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> 主要是无聊,想做个游戏娱乐一下自己,当然也希望大家能从中得到笑声。 其次也想锻炼一下自己的技术,以前用<span class=fontEng1>VB</span>做过一个,不是很好,这次用的是<span class=fontEng1>ASP</span>,不知有没有进步,呵呵 这个版本我大概地测试了一下,没发现大的<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. Ha ha. </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. Entier ' 可能的值有: ' 0:主语 ' 1:程度状语 ' 2:地点状语 ' 3:谓语 'Output: The status value after the file operation. Entier ' 可能的值有: ' 0:操作成功 ' 1:操作失败 '************************ Function SaveFile(iSenPart) Dim fsoMain, tsfWords Dim iCount, iWrdCnt Dim iOpStatus '------------------------------------------ '常变量说明 'fsoMain :FSO对象 'tsfWords :TEXTSTREAM对象 'iCount : Counter. Entier 'iWrdCnt: The number of words of a certain type of vocabulary. Entier 'iOpStatus: The status after the file operation is completed. Entier '------------------------------------------ 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)) Suivant Terminer si tsfWords.Close iOpStatus = 0 SaveFile = iOpStatus Fonction finale '************************ '函数名:LoadFile '功能:从文件中载入某类词汇 'Input: 1. iSenPart: a number representing the vocabulary classification. Entier ' 可能的值有: ' 0:主语 ' 1:程度状语 ' 2:地点状语 ' 3:谓语 'Output: The status value after the file operation. Entier ' 可能的值有: ' 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. Entier '------------------------------------------ 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 & , Boucle If strLoaded <> Then strLoaded = Left(strLoaded, Len(strLoaded) - 1) m_astrWords(iSenPart) = Split(strLoaded, ,) Autre m_astrWords(iSenPart) = Empty Terminer si tsfWords.Close iOpStatus = 0 Autre '如果不存在纪录文件 iOpStatus = 1 Terminer si LoadFile = iOpStatus Fonction finale % > <% '以下是服务器端脚本 '用于测试的函数和过程 Sub Show(strDef) Response.Write strDef & : & Eval(strDef) & <br> Sub-Sub Sub ShowMethod() Response.Write Request Method: & Request.ServerVariables(REQUEST_METHOD) & <br> Sub-Sub Sub ShowForm() Baisser 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> Suivant Response.Write *********Form End**************<br> Sub-Sub % > |
分享:ASP 3.0高级编程(十二) 4.2.3 服务器端包含指令的例子本节提供了一些示例页面,可以用来对各种服务器端包含语句进行实验。打开示例网页的子目录Chapter04,显示SSI Directives and the ASP Server Object&rdqu