권장 : ASP 3.0 고급 프로그래밍 (41) 9.2.3 저장 절차 사용 저장 절차의 사용은 명령 개체가 적용되는 영역입니다. 저장 프로 시저 (때로는 스토리지 쿼리라고도 함)는 데이터베이스에서 사전 정의 된 SQL 쿼리 문입니다. 저장된 절차를 코드에서 직접 사용하는 대신 작성 및 사용해야하는 이유
이것은 ASP, vbscript 및 JavaScript로 작성된 단어 코딩에 관한 게임입니다.
Win98 OEM2, PWS 및 IE5에서 테스트 중에는 주요 문제가 발견되지 않았습니다.
사용 방법 :
방법 1 : 예를 들어, 3W 서비스의 디렉토리는 c :/inetpub/wwwroot입니다. 아래의 디렉토리를 작성하십시오. 게임 파일 (WordAsb.asp)을 디렉토리에 복사하십시오. http : // 당신의 기계 이름/wordasb/wordasb.asp 또는 http://127.0.0.1/wordasb/wordasb.asp를 IE의 주소 표시 줄에서 입력하고 Enter를 눌러 게임을 시작하십시오.
방법 2 : 게임 파일 (WordAsb.asp)을 새로 만든 디렉토리로 복사하십시오. 디렉토리를 마우스 오른쪽 단추로 클릭하고 메뉴에서 속성을 선택하고 웹 공유 속성 페이지를 클릭 하고이 폴더 항목 공유를 클릭 한 다음 확인을 클릭하십시오. http : // 당신의 기계 이름/새 디렉토리 이름/wordasb.asp 또는 http://127.0.0.1/ IE의 주소 표시 줄에서. 들어가서 게임을 시작하십시오.
참고 : 컴퓨터 OS는 NT 또는 Win2000 서버 또는 기타 OS이어야하지만 PWS가 설치되어 있어야합니다.
게임 방법 :
게임의 게임 지침을 클릭하여 알 수 있습니다. 페이지가 때때로 비어 있으면 F5를 눌러 새로 고침하십시오 (현재 가장 큰 버그이기도합니다).
코드는 다음과 같습니다.
| 다음은 인용 된 내용입니다. <%@ language = vbscript%> <% 옵션 명시 적 '2001 년 3 월 16 일 Recon에 의해 마지막 업데이트 dim m_ipartcnt dim m_strprompt dim m_astsenpart (), m_astfilename () dim m_astwrwords (), m_aiopstatus () '------------------------------------------- '상수 변수 설명 'm_ipartcnt : 어휘 카테고리 수. 정수 'm_strprompt : 파일 작동이 완료된 후 프롬프트. 문자열 유형 'm_astrsenpart : 어휘 분류의 이름. 캐릭터 배열 'm_astfilename : 다양한 어휘 파일의 파일 이름을 기록합니다. 캐릭터 배열 'm_astwrows : 모든 종류의 어휘를 기록하십시오. 2 차원 문자 배열 'm_aiopstatus : 각 파일에서 작동 한 후 상태를 기록합니다. 정수 배열 '------------------------------------------- '쇼 메드 m_ipartcnt = 4 m_strprompt = redim m_astsenpart (m_ipartcnt) redim m_astfilename (m_ipartcnt) redim m_astwrwords (m_ipartcnt) redim m_aiopstatus (m_ipartcnt) '다양한 어휘 카테고리의 이름을 정의하십시오 m_astsenpart (0) = 주제 m_astrsenpart (1) = 부사 학위 m_astrsenpart (2) = 부사 장소 m_astsenpart (3) = 술어 '다양한 어휘 문서의 이름을 정의하십시오 m_astfilename (0) = Who.txt m_astfilename (1) = How.txt m_astfilename (2) = wher.txt m_astfilename (3) = What.txt request.servervariables (request_method) = post '페이지의 요청 메소드가 게시 된 경우 '*************************** '클라이언트 정보를 얻으십시오 '*************************** 희미한 m_isenpart 희미한 m_stropway dim m_brpteddata '------------------------------------------- '상수 변수 설명 'm_isenpart : 어휘 분류를 나타내는 숫자. 정수 '어휘 분류는 배열 m_astrsenpart에서 나옵니다 '가능한 값은 다음과 같습니다. '0 : 주제 '1 : 부사 학위 '2 : 부사 장소 '3 : 술어 'm_stropway : 파일 작동 방법. 문자열 유형 '가능한 값은 다음과 같습니다. '1. 저장 : 특정 유형의 어휘를 파일에 저장 '2. Saveall : 모든 범주의 어휘를 파일에 저장 '3.로드 : 파일에서 특정 유형의 어휘를로드 '4. loadall : 파일에서 모든 범주의 어휘를로드 'M_BRPTEDDATA : 이번에 제출 된 양식 데이터가 마지막 시간과 동일한 지 여부를 나타냅니다. 부울 유형 '가능한 값은 다음과 같습니다. '1. False : 양식 데이터가 복제되지 않았습니다 '2. true : 양식 데이터가 반복됩니다 (즉, 양식이 반복적으로 제출 됨) '------------------------------------------- 'Showform '사용자 요청을받는 방법 m_stropway = request.form (txtopway) '쇼 (m_stropway) '다양한 범주로 단어를 얻으십시오 m_icount = 0 to (m_ipartcnt -1) request.form (txtwords & m_icount)이면 <>합니다 m_astwrows (m_icount) = split (request.form (txtwords & m_icount) ,,) 끝 If '응답. ubound (m_astrwords (m_icount)) & <BR> 다음 '형태의 반복 제출 감지 '세션 (forminf) = request.form이면 ``양식은 반복적으로 제출됩니다 'm_brpteddata = true '또 다른 ``양식은 반복되지 않은 제출입니다 '세션 (forminf) = request.form 'm_brpteddata = false '끝 If '쇼 (m_brpteddata) '*************************** '단어 파일을 작동합니다 '*************************** 'm_brpteddata = false라면 dim m_icount, m_ierrcnt DIM M_STRFILEPATH '------------------------------------------- '상수 변수 설명 'm_icount : 카운터. 정수 'm_ierrcnt : 작업이 실패한 횟수. 정수 'm_strfilepath : 다양한 어휘 파일의 경로를 기록하십시오. 문자열 유형 '------------------------------------------- '어휘 파일을 배치 할 길을 얻으십시오 m_strfilepath = request.servervariables (path_translated) m_strfilepath = 왼쪽 (m_strfilepath, instrev (m_strfilepath, /)) 'm_strfilepath = m_strfilepath & Words/ '쇼 (m_strfilepath) '파일 작업을 시작하십시오 'response.write는 단어 파일을 작동하기 시작합니다 <br> 사례 m_stropway를 선택하십시오 케이스 저장 '파일에 단어를 저장하십시오 m_isenpart = cint (request.form (txtsenpart)) m_aiopstatus (m_isenpart) = savefile (m_isenpart) '운영 상태에 따라 신속한 정보를 얻으십시오 사례 m_aiopstatus (m_isenpart) 선택 사례 0 m_strprompt = [& m_astsenpart (m_isenpart) &] 일부 단어가 파일에 성공적으로 저장되었습니다. 사례 1 m_strprompt = [& m_astsenpart (m_isenpart) &] 일부 파일 저장 실패 종료 선택 사례 saveall '모든 범주의 단어를 파일에 저장합니다 m_ierrcnt = 0 m_icount = 0 to (m_ipartcnt -1) m_aiopstatus (m_icount) = savefile (m_icount) m_aiopstatus (m_icount) = 1 인 경우 m_ierrcnt = m_ierrcnt 1 끝 If 다음 '운영 상태에 따라 신속한 정보를 얻으십시오 사례 m_ierrcnt를 선택하십시오 사례 0 m_strprompt = 모든 범주의 단어가 파일에 성공적으로 저장되었습니다. CASE M_IPARTCNT m_strprompt = 모든 카테고리의 Word 파일 저장에 실패했습니다. 다른 경우 m_strprompt = 여기서 m_icount = 0 to (m_ipartcnt -1) m_aiopstatus (m_icount) = 1 인 경우 m_strprompt = m_strprompt & [& m_astsenpart (m_icount) &], 끝 If 다음 m_strprompt = 왼쪽 (m_strprompt, len (m_strprompt) -1) m_strprompt = m_strprompt 및 일부 파일이 저장하지 못했습니다 종료 선택 케이스로드 '파일에서 단어로드 m_isenpart = cint (request.form (txtsenpart)) m_aiopstatus (m_isenpart) = loadfile (m_isenpart) '운영 상태에 따라 신속한 정보를 얻으십시오 사례 m_aiopstatus (m_isenpart) 선택 사례 0 m_strprompt = [& m_astsenpart (m_isenpart) &] 일부 단어가 성공적으로로드되었습니다. 사례 1 m_strprompt = [& m_astsenpart (m_isenpart) &] 일부 파일이 존재하지 않으며로드가 실패합니다. 종료 선택 케이스로드 '각 파일에서 단어로드 m_ierrcnt = 0 m_icount = 0 to (m_ipartcnt -1) m_aiopstatus (m_icount) = loadfile (m_icount) m_aiopstatus (m_icount) = 1 인 경우 m_ierrcnt = m_ierrcnt 1 끝 If 다음 '운영 상태에 따라 신속한 정보를 얻으십시오 사례 m_ierrcnt를 선택하십시오 사례 0 m_strprompt = 모든 범주의 단어가 성공적으로로드되었습니다. CASE M_IPARTCNT m_strprompt = 모든 카테고리의 Word 파일은 존재하지 않으며로드가 완전히 실패합니다. 다른 경우 m_strprompt = 여기서 m_icount = 0 to (m_ipartcnt -1) m_aiopstatus (m_icount) = 1 인 경우 m_strprompt = m_strprompt & [& m_astsenpart (m_icount) &], 끝 If 다음 m_strprompt = 왼쪽 (m_strprompt, len (m_strprompt) -1) m_strprompt = m_strprompt 및 일부 파일이 존재하지 않으면 일부로드가 실패합니다. 종료 선택 종료 선택 '끝 If 끝 If 'response.write write end word files <br> 'Response.write는 클라이언트 페이지 <br>을 쓰기 시작합니다 %> HTML t < 머리 > < 타이틀 match 단어 일치 게임 </제목 > meta name = Generator Content = editPlus > > meta name = author 컨텐츠 => meta name = 키워드 내용 => meta name = 설명 내용 => <!-스타일 테이블-> < 스타일> <!- /*영어 글*/ .fonteng1 { Font-Family : Times New Roman; 글꼴 스타일 :; } /*영어 글꼴*/ .fonteng2 { Font-Family : Times New Roman; 글꼴 스타일 : 이탈리아; } /*글꼴을 준수*/ . 전제 { 색상 : 빨간색; } /*링크*/ .링크 { Font-Family : Times New Roman; 글꼴 스타일 : 이탈리아; 텍스트 결정 : 없음; } /* 표시된 단어 목록*/ .listshown { 위치 : 절대; 너비 : 140px; 높이 : 200px; 디스플레이 : 인라인; 경계 : 경도 1px 고체; 배경색 : Gainsboro; } /*숨겨진 단어 목록*/ .Listhidden { 위치 : 절대; 너비 : 140px; 높이 : 200px; 디스플레이 : 없음; 경계 : 경도 1px 고체; 배경색 : Gainsboro; } /*고정 단어 목록*/ .listfixed { 위치 : 절대; 너비 : 140px; 높이 : 200px; 디스플레이 : 인라인; 테두리 : 빨간색 1px 고체; 배경색 : Gainsboro; } /*도움 목록 표시*/ .HelpShown { 위치 : 절대; 너비: ; 키: ; 디스플레이 : 블록; 경계 : 경도 1px 고체; 배경색 : Gainsboro; } /*숨겨진 도움말 목록*/ .Helphidden { 위치 : 절대; 너비: ; 키: ; 디스플레이 : 없음; 경계 : 경도 1px 고체; 배경색 : Gainsboro; } /*고정 된 도움말 목록*/ .HELPFIXED { 위치 : 절대; 너비: ; 키: ; 디스플레이 : 블록; 테두리 : 빨간색 1px 고체; 배경색 : Gainsboro; } /*강조 표시*/ .lblmover { 텍스트 결정 : 없음; 색상 : Lightcoral; 배경색 :; } /*일반 디스플레이 태그*/ .lblmout { 텍스트 결정 : 없음; 색상: ; 배경색 :; } /*클릭 태그*/ .lblClicked { 텍스트 결정 : 밑줄; 색상 : 빨간색; 배경색 :; } /* 강조 표시 버튼*/ .btnlight { 너비 : 105px; 색상 : 파란색; 배경색 :; } /*일반 디스플레이 버튼*/ .BTNDLIGHTED { 너비 : 105px; 색상: ; 배경색 :; } /* 강조 표시된 단어 목록 항목*/ .optlight { 텍스트 결정 : 밑줄; 색상 : 파란색; 배경색 :; 커서 : 손; } /*일반 표시된 단어 목록 항목*/ .optdelighted { 텍스트 결정 : 없음; 색상: ; 배경색 :; 커서 :; } -> </스타일> <!-클라이언트 스크립트-> script 언어 = JavaScript> <!- // 클라이언트 공개 및 테스트 함수 // *********************************** // 함수 이름 : ltrim // 기능 : 문자열의 왼쪽에있는 공간을 제거합니다. // 입력 : 1. strtemp : 문자열은 규칙적입니다. 문자열 유형 // 출력 : 일반 문자열. 문자열 유형 // *********************************** 함수 ltrim (strtemp) { Var Icount, Ilength; // ----------------------------------------------- // 상수 변수 설명 // iCount : 카운터. 정수 // ilength : 문자열의 길이. 정수 // ----------------------------------------------- ilength = strtemp.length; for (iCount = 0; iCount < ilength; icount) if (strtemp.charat (icount)! =) return strtemp.substring (iCount, ilength); 반품 ; } // *********************************** // 함수 이름 : rtrim // 기능 : 문자열 오른쪽의 공간을 제거합니다. // 입력 : 1. strtemp : 문자열은 규칙적입니다. 문자열 유형 // 출력 : 일반 문자열. 문자열 유형 // *********************************** 함수 rtrim (strtemp) { Var Icount, Ilength; // ----------------------------------------------- // 상수 변수 설명 // iCount : 카운터. 정수 // ilength : 문자열의 길이. 정수 // ----------------------------------------------- ilength = strtemp.length; for (icount = ilength -1; icount> = 0; icount-) if (strtemp.charat (icount)! =) return strtemp.substring (0, iCount 1); 반품 ; } // *********************************** // 함수 이름 : 트림 // 기능 : 문자열 양쪽의 공백을 제거합니다. // 입력 : 1. strtemp : 문자열은 규칙적입니다. 문자열 유형 // 출력 : 일반 문자열. 문자열 유형 // *********************************** 기능 트림 (strtemp) { return rtrim (ltrim (strtemp)); } // 2 자리 숫자를 2 자리 문자열로 변환합니다 // *********************************** // 함수 이름 : get2bnumstr // 기능 : 2 비트 숫자를 2 비트 숫자로 변환하십시오 // 입력 : 1. Inumber : 변환 할 숫자. 정수 // 출력 : 변환 된 숫자 문자열. 정수 // *********************************** 함수 get2bnumstr (Inumber) { var str2bnum; // ----------------------------------------------- // 상수 변수 설명 // str2bnum : 숫자 문자열. 문자열 유형 // ----------------------------------------------- if (parseint (Inbermer) < 10) str2bnum = 0 인버; 또 다른 str2bnum = 내장; return str2bnum; } // *********************************** // func function name : antartfunc // 기능 : 요소의 이벤트 처리 기능을 지정합니다 // 입력 : 1. ELE : 지정할 이벤트 처리 기능의 요소. 객체 유형 // 2. func : 이벤트 처리 기능. 기능적 // 3. 이벤트 : 이벤트 유형. 문자열 유형 // 출력 : 없음 // *********************************** 함수 antartfunc (ele, func, event) { Var Icount, ielecount; var strevent; // ----------------------------------------------- // 상수 변수 설명 // iCount : 카운터. 정수 // ielecount : 이름이 같은 요소 모음의 요소 수입니다. 정수 // strevent : 이벤트 유형. 문자열 유형 // ----------------------------------------------- if (event == null) strevent = onclick; 또 다른 strevent = 이벤트; ielecount = ele.length; if (ielecount == undefined) 평가 (ele. strevent = func); 또 다른 for (iCount = 0; iCount < ielecount; icount) 평가 (ele [iCount]. Strevent = func); } // *********************************** // 함수 이름 : getELeIndex // 기능 : 같은 이름의 컬렉션에서 이벤트가 발생한 요소의 색인을 가져옵니다. // 입력 : 1. ELESRC : 이벤트가 발생한 요소. 객체 유형 // 출력 : 같은 이름의 컬렉션에서 이벤트가 발생한 요소의 색인 // *********************************** 함수 geteleindex (elesrc) { var colsrc; Var Icount, ielecount; // ----------------------------------------------- // 상수 변수 설명 // colsrc : 같은 이름의 요소 모음. 객체 유형 배열 // iCount : 카운터. 정수 // ielecount : 이름이 같은 요소 모음의 요소 수입니다. 정수 // ----------------------------------------------- colsrc = 평가 (elesrc.id); ielecount = colsrc.length; for (iCount = 0; iCount < ielecount; icount) { if (colsrc [icount] == elesrc) 반환 iCount; } 반품 -1; } // 상수 변수의 값 표시 (디버깅 용) //! 삭제 준비 기능 쇼 (strdef1, strdef2, strdef3, strdef4) { var icount, idefcnt; var strshow, strtemp; idefcnt = 4; strshow = [상수 변수 값]; for (icount = 1; icount < = idefcnt; icount) { strtemp = eval (strdef icount); if (strtemp! = undefined && strtemp! = null) strshow = /n strtemp : eval (strtemp); } 경고 (Strshow); } // *********************************** // 함수 이름 : showArray // 기능 : 1 차원 배열의 디스플레이 요소 (디버깅 용) // 입력 : 1. 배열 : 표시 할 1 차원 배열. 정렬 // 출력 : 없음 // *********************************** 함수 showArray (배열) { Var Icount, ielecount; var strshow; // ----------------------------------------------- // 상수 변수 설명 // iCount : 카운터. 정수 // ielecount : 배열 요소 수입니다. 정수 // strshow : 배열 요소 값으로 구성된 문자열. 문자열 유형 // ----------------------------------------------- ielecount = array.length; strshow = 배열 길이 : ielecount; strshow = /n ---------------------------------- /N; for (iCount = 0; iCount < ielecount; icount) { if (typeof (array [icount]) == 객체) strshow = 배열 [iCount] .id; 또 다른 strshow = 배열 [iCount]; } 경고 (Strshow); } // *********************************** // 함수 이름 : show2darray // 기능 : 2 차원 배열의 디스플레이 요소 (디버깅 용) // 입력 : 1. 배열 : 표시 할 2 차원 배열. 정렬 // 출력 : 없음 // *********************************** 기능 show2darray (배열) { var ix, iy, ilen1, ilen2; var strshow; // ----------------------------------------------- // 상수 변수 설명 // ix : 카운터. 정수 // iy : 카운터. 정수 // ilen1 : 1 차원 배열의 수. 정수 // ilen2 : 2 차원 배열의 수. 정수 // strshow : 배열 요소 값으로 구성된 문자열. 문자열 유형 // ----------------------------------------------- ilen1 = array.length; strshow = 배열 1d 길이 : ilen1; strshow = /n ---------------------------------------- for (ix = 0; ix < ilen1; ix) { strshow = /n; ilen2 = 배열 [ix] .length; for (iy = 0; iy < ilen2; iy) strshow = 배열 [ix] [iy]; } 경고 (Strshow); } //-> </스크립트> script 언어 = JavaScript> <!- //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- // window_onload // // getword //다시 놓기 //구하다 //짐 // // 쇼리스트 // hidelist // fixList // 발레리스트 // // showHelp // HideHelp // fixhelp // // 재설정 // saveall // loadAll //모으다 // // lightbtn // delightBtn // lightopt // delightopt // // makeopt // removeOpt // ----------------------------------------------------------------------- var m_ipartcnt; var m_astrsenpart, m_astwrows; var m_strprompt; var m_ilistfixed, m_ihelpfixed; // ----------------------------------------------- // 상수 변수 설명 // m_ipartcnt : 어휘 카테고리 수. 정수 // m_astrsenpart : 어휘 분류의 이름. 캐릭터 배열 // m_astwrows : 다양한 어휘를 기록하십시오. 2 차원 문자 배열 // m_strprompt : 파일 작동이 완료된 후 프롬프트 메시지가 완료됩니다. 문자열 유형 // m_ilistfixed : 고정 된 단어 목록을 나타내는 숫자. 정수 // -1은 단어 목록이 고정되어 있지 않음을 의미합니다 // m_ihelpfixed : 도움말 목록의 고정 상태를 나타내는 숫자. 정수 // -1은 도움말 목록이 수정되지 않았 음을 의미합니다. // ----------------------------------------------- Window.onload = Window_onload; // ----------------------------------------------------------------------- // 페이지를 초기화합니다 함수 winder window_onload () { varicount, ielecnt; var colbutton; var strhelp; // ----------------------------------------------- // 상수 변수 설명 // iCount : 카운터. 정수 // ielecnt : 컬렉션의 요소 수입니다. 정수 // Colbutton : 버튼 요소 모음. 객체 유형 배열 // strhelp : 도움말 파일 컨텐츠. 문자열 유형 // ----------------------------------------------- m_ipartcnt = <%= m_ipartcnt%>; m_strprompt = <%= m_strprompt%>; m_ilistfixed = -1; m_ihelpfixed = -1; m_astsenpart = new Array (); m_astwrows = new Array (); // alert (m_ipartcnt : m_ipartcnt /nm_strprompt : m_strprompt); // 어휘 분류의 이름과로드 된 다양한 어휘를 얻습니다. m_icount = 0 ~ (m_ipartcnt -1)%의 경우 // 모든 종류의 어휘를로드합니다 isempty (m_astwrows (m_icount)) = true%> m_astwrows [word%= m_icount%>] = new Array (); <%else%> m_astrwords [word%= m_icount%>] = <%= join (m_astwrows (m_icount) ,,)%>. split (,); <%가%> // 어휘 분류의 이름을 얻습니다 m_astsenpart [<%= m_icount%>] = <%= m_astrsenpart (m_icount)%>; <%next%> // show2darray (m_astwrows); // showArray (m_astsenpart); // 모든 종류의로드 된 어휘를 페이지에 쓰십시오 for (icount = 0; icount < m_ipartcnt; icount) Valuelist (m_astwrows [iCount], iCount); // 도움말 파일을로드합니다 // strhelp = tblhelp.outerhtml; // strhelp = divhelp1.innerhtml; //tblhelp.outerhtml =; //divhelp.innerhtml = strhelp; //tblhelp.style.display =; //divhelp.style.display = 없음; //divhelp.style.left = divhelp1.style.left; // alert (왼쪽 : divhelp.style.left /nleft : divhelp1.style.left); // alert (pixelleft : divhelp.style.pixelleft /npixelleft : divhelp1.style.pixelleft); // ALERT (posleft : divhelp.style.posleft /nposleft : divhelp1.style.posleft); // ALERT (OffSetLeft : Divhelp.OffSetLeft /noffSetLeft : Divhelp1.OffSetLeft); // ALERT (clientLeft : divhelp.clientleft /nclientleft : divhelp1.clientleft); // 페이지 요소의 이벤트 처리 기능을 지정합니다 antartfunc (txtword, getword, onkeypress); antartfunc (btngetword, getword); antadyfunc (btnreset, 재설정); antartfunc (btnsave, save); 할액 펀치 (btnload, load); antadyfunc (lblwordlist, showlist, onmouseover); antartfunc (lblwordlist, hidelist, onmouseout); antartfunc (lblwordlist, fixList); antartfunc (lblhelp, showhelp, onmouseover); antadyfunc (lblhelp, hidehelp, onmouseout); antadyfunc (lblhelp, fixhelp); antadyfunc (btnresetall, restall); antartfunc (btnsaveall, saveall); antartfunc (btnloadall, loadall); assmentfunc (btnasb, 조립); colbutton = document.all.tags (버튼); ielecnt = colbutton.length; // showArray (Colbutton); // alert (ielecnt : ielecnt); for (iCount = 0; iCount < ielecnt; icount) { assidfunc (colbutton [icount], lightbtn, onmouseover); assidfunc (colbutton [icount], diverttn, onmouseout); } // 페이지의 초기 상태를 설정합니다 if (m_strprompt! =) 경고 (m_strprompt); txtword [0] .focus (); } // ----------------------------------------------------------------------- // 사용자가 입력 한 단어를 얻습니다 함수 getword () { // Enter 또는 단어 입력 상자를 누르는 경우에만 // 저장 버튼을 누를 때 계속하십시오 if (window.event.type! = keypress && winde 반품; 또 다른 if (window.event.type == keypress && winde var elesrc; var iindex, xtwrdidx; var strword; // ----------------------------------------------- // 상수 변수 설명 // ELESRC : 이벤트가 발생한 요소입니다 // iindex : 어휘 분류를 나타내는 숫자. 정수 // INXTWRDIDX : 단어 배열에서 새 단어의 색인. 정수 // strword : 사용자가 입력 한 단어. 문자열 유형 // ----------------------------------------------- elesrc = window.event.srcelement; iindex = geteleindex (elesrc); // 색인을 얻습니다 strword = trim (txtword [iindex] .Value); // 사용자가 입력 한 단어를 얻습니다 // 입력 된 단어가 합법적인지 여부를 감지합니다 // 불법적 인 단어 인 경우 종료하십시오 if (strword ==) { // 입력 된 단어가 비어 있거나 공간 문자열 인 경우 경고 (단어는 비어 있거나 공간 문자열이 될 수 없음); txtword [iindex] .select (); 반품; } if (strword.indexof (,)! = -1 || strword.indexof ()! = -1) { // 입력 된 단어에 쉼표 또는 공간이 포함 된 경우 경고 (단어는 쉼표 또는 공간을 포함 할 수 없습니다); txtword [iindex] .select (); 반품; } // 단어를 어휘 배열에 저장합니다 inxtwrdidx = m_astrwords [iindex] .length; m_astwrows [iindex] [inxtwrDidx] = strword; // showArray (m_astwrwords [iindex]); // 페이지에 단어를 씁니다 Valuelist (m_astwrows [iindex], iindex); txtword [iindex] .value =; txtword [iindex] .focus (); } // ----------------------------------------------------------------------- // 메모리에서 현재 범주의 모든 단어를 삭제합니다 기능 재설정 () { var elesrc; var iindex, iCount; var strprompt; // ----------------------------------------------- // 상수 변수 설명 // ELESRC : 이벤트가 발생한 요소입니다 // iindex : 어휘 분류를 나타내는 숫자. 정수 // iCount : 카운터. 정수 // strprompt : 작동 프롬프트. 문자열 유형 // ----------------------------------------------- elesrc = window.event.srcelement; iindex = geteleindex (elesrc); strprompt = 메모리에서 [m_astsenpart [iindex]] 부분의 모든 단어를 지우고 싶습니까? ; if (window.confirm (strprompt) == false) 반환; m_astwrows [iindex] = new Array (); Valuelist (m_astwrows [iindex], iindex); // showArray (m_astwrwords [iindex]); strprompt = 단어가 지워졌습니다. 경고 (strprompt); txtword [iindex] .select (); } // ----------------------------------------------------------------------- // 선택한 카테고리의 현재 어휘를 파일에 저장 함수 저장 () { var elesrc; var iindex, iCount; // ----------------------------------------------- // 상수 변수 설명 // ELESRC : 이벤트가 발생한 요소입니다 // iindex : 어휘 분류를 나타내는 숫자. 정수 // iCount : 카운터. 정수 // ----------------------------------------------- elesrc = window.event.srcelement; iindex = geteleindex (elesrc); if (m_astwrwers [iindex] .length == 0) { // 선택한 범주의 현재 단어 수가 0 인 경우 var strprompt; strprompt = [m_astrsenpart [iindex]] 섹션은 이제 선택적인 단어가 없습니다. 저장 하시겠습니까? ; strprompt = /n (이것은 빈 새 파일을 생성합니다); if (window.confirm (strprompt) == false) 반환; } // 현재 메모리에 모든 단어를 저장합니다 for (icount = 0; icount < m_ipartcnt; icount) eval (frmwords.txtwords iCount) .Value = m_astrwords [iCount] .join (,); frmwords.txtsenpart.value = iindex; frmwords.txtopway.value = 저장; frmwords.submit (); } // ----------------------------------------------------------------------- // 파일에서 선택한 범주의 단어 레코드를 읽습니다 함수로드 () { var elesrc; var iindex, iCount; // ----------------------------------------------- // 상수 변수 설명 // ELESRC : 이벤트가 발생한 요소입니다 // iindex : 어휘 분류를 나타내는 숫자. 정수 // iCount : 카운터. 정수 // ----------------------------------------------- elesrc = window.event.srcelement; iindex = geteleindex (elesrc); // 현재 메모리에 모든 단어를 저장합니다 for (icount = 0; icount < m_ipartcnt; icount) eval (frmwords.txtwords iCount) .Value = m_astwrows [icount] .join (,) frmwords.txtsenpart.value = iindex; frmwords.txtopway.value = load; frmwords.submit (); } // ----------------------------------------------------------------------- // 어휘 목록 표시 기능 쇼리스트 (iindex) { // 매개 변수 iindex가 제공되지 않은 경우 // iindex를 얻습니다 if (iindex == 정의되지 않은) { // 단어 목록이 이미 고정되어 있으면 함수를 종료하십시오. if (m_ilistfixed! = -1) 반환; var elesrc; var iindex; // ----------------------------------------------- // 상수 변수 설명 // ELESRC : 이벤트가 발생한 요소입니다 // iindex : 어휘 분류를 나타내는 숫자. 정수 // ----------------------------------------------- elesrc = window.event.srcelement; iindex = geteleindex (elesrc); } // alert (iindex : iindex); // 어휘 목록 표시 //lblwordList]. innerText = [lblwordList [iindex] .innerText]; //lblwordList]. innerText = lblwordList [iindex] .innerText >; lblwordList [iindex] .classname = lblmover; divwordlist [iindex] .classname = listshown; } // ----------------------------------------------------------------------- // 어휘 목록을 숨 깁니다 기능 Hidelist (iindex) { // 매개 변수 iindex가 제공되지 않은 경우 // iindex를 얻습니다 if (iindex == 정의되지 않은) { // 단어 목록이 이미 고정되어 있으면 함수를 종료하십시오. if (m_ilistfixed! = -1) 반환; var elesrc; var iindex; // ----------------------------------------------- // 상수 변수 설명 // ELESRC : 이벤트가 발생한 요소입니다 // iindex : 어휘 분류를 나타내는 숫자. 정수 // ----------------------------------------------- elesrc = window.event.srcelement; iindex = geteleindex (elesrc); } // alert (iindex : iindex); // 어휘 목록을 숨 깁니다 //lblwordList] .innerText = lblwordList [iindex] .innerText.Slice (0, -1); lblwordlist [iindex] .classname = lblmout; divwordlist [iindex] .classname = listhidden; } // ----------------------------------------------------------------------- // 고정 어휘 목록 함수 fixList () { var elesrc; var iindex; // ----------------------------------------------- // 상수 변수 설명 // ELESRC : 이벤트가 발생한 요소입니다 // iindex : 어휘 분류를 나타내는 숫자. 정수 // ----------------------------------------------- elesrc = window.event.srcelement; iindex = geteleindex (elesrc); 스위치 (m_ilistfixed) { 사례 -1 : // 아직 단어 목록이없는 경우 // 현재 목록을 수정합니다 m_ilistfixed = iindex; lblwordList [iindex] .className = lblClicked; divwordlist [iindex] .classname = listfixed; 부서지다; 사례 iindex : // 고정 된 단어 목록이 현재 목록 인 경우 // 현재 목록을 해결합니다 m_ilistfixed = -1; lblwordList [iindex] .classname = lblmover; divwordlist [iindex] .classname = listshown; 부서지다; 기본: // 고정 된 단어 목록이 현재 목록이 아닌 경우 // 고정 수정 목록 Hidelist (m_ilistfixed); m_ilistfixed = -1; lblwordList [iindex] .classname = lblmover; 쇼리스트 (iindex); 부서지다; } // alert (m_ilistfixed : m_ilistfixed /niindex : iindex); } // ----------------------------------------------------------------------- // 특정 유형의 어휘에로드 된 단어를 작성합니다 기능 Valuelist (Awords, Isenpart) { varicount, iwrdcnt; var strlistppt; // ----------------------------------------------- // 상수 변수 설명 // iCount : 카운터. 정수 // iwrdcnt : 특정 유형의 어휘의 단어 수입니다. 정수 // strlistppt : 단어 목록의 프롬프트. 문자열 유형 // ----------------------------------------------- // 데이터 준비 iwrdcnt = awords.length; lblwordCount [isenPart] .innerText = iwrdcnt; strlistppt = p div >< span style = 'color : 빨간색; 글꼴 스타일 : 이탈리아; 글꼴 크기 : 10.5pt; '>; strlistppt = 단어를 두 번 클릭하여 삭제하십시오 </span> </div>; // 목록에 단어를 씁니다 if (iwrdcnt! = 0) { divwordlist [isenpart] .innerhtml = strlistppt; for (iCount = 0; iCount < iwrdcnt; icount) divwordlist [isenpart] .innerhtml = makeopt (awords [icount], icount); } 또 다른 divwordlist [isenpart] .innerhtml = strlistppt; } // ----------------------------------------------------------------------- // 도움말 목록을 표시합니다 함수 showhelp () { // 도움말 목록이 수정 된 경우 함수를 종료하십시오. if (m_ihelpfixed == 0) 반환; // 도움말 표시 lblhelp.classname = lblmover; divhelp.classname = 도움말; } // ----------------------------------------------------------------------- // 도움말 목록을 숨 깁니다 함수 hidehelp () { // 도움말 목록이 수정 된 경우 함수를 종료하십시오. if (m_ihelpfixed == 0) 반환; // 도움말을 숨 깁니다 lblhelp.classname = lblmout; divhelp.classname = helphidden; } // ----------------------------------------------------------------------- // 고정 도움말 목록 함수 fixhelp () { if (m_ihelpfixed == -1) { // 도움말 목록이 수정되지 않은 경우 // 수정 m_ihelpfixed = 0; lblhelp.classname = lblclicked; divhelp.classname = helpfixed; } 또 다른 { // 도움말 목록이 수정 된 경우 // 해결합니다 m_ihelpfixed = -1; lblhelp.classname = lblmover; divhelp.classname = 도움말; } } // ----------------------------------------------------------------------- // 페이지를 초기 상태로 재설정합니다 함수 restall () { var icount; // ----------------------------------------------- // 상수 변수 설명 // iCount : 카운터. 정수 // ----------------------------------------------- for (icount = 0; icount < m_ipartcnt; icount) { txtword [iCount] .Value =; m_astrwords [iCount] = new Array (); // 단어 배열을 비우십시오 Valuelist (m_astwrows [iCount], iCount); } txtsentence.value =; txtword [0] .focus (); } // ----------------------------------------------------------------------- // 모든 범주의 단어를 파일에 저장합니다 함수 saveall () { var iCount, iemptycnt; var strprompt; // ----------------------------------------------- // 상수 변수 설명 // iCount : 카운터. 정수 // iemptycnt : 0 단어가있는 카테고리 수입니다. 정수 // strprompt : 작동 프롬프트. 문자열 유형 // ----------------------------------------------- IEMPTYCNT = 0; for (icount = 0; icount < m_ipartcnt; icount) { // 현재 메모리에 모든 단어를 저장합니다 eval (frmwords.txtwords iCount) .Value = m_astrwords [iCount] .join (,); if (m_astwrows [icount] .length == 0) IEMPTYCNT; } // alert (iemptycnt : iemptycnt); if (iemptycnt > 0) { 스위치 (iemptycnt) { CASE M_IPARTCNT : strprompt = 모든 카테고리의 어휘 단어 수는 0이며 작업은 m_ipartcnt 빈 파일을 생성합니다. strprompt = /n 당신은 이것을하고 싶습니까? ; 부서지다; 기본: strprompt = 여기서; for (icount = 0; icount < m_ipartcnt; icount) if (m_astwrows [icount] .length == 0) strprompt = [m_astrsenpart [iCount]],; strprompt = strprompt.slice (0, -1); strprompt = 일부 단어의 수는 0입니다. strprompt = /n 작동은 iemptycnt 빈 파일을 생성합니다. strprompt =, 당신은 이것을하고 싶습니까? ; } if (window.confirm (strprompt) == false) 반환; } frmwords.txtopway.value = saveall; frmwords.submit (); } // ----------------------------------------------------------------------- // 파일에서 모든 범주의 단어를로드합니다 함수 loadall () { var icount; // ----------------------------------------------- // 상수 변수 설명 // iCount : 카운터. 정수 // ----------------------------------------------- // 현재 메모리에 모든 단어를 저장합니다 for (icount = 0; icount < m_ipartcnt; icount) eval (frmwords.txtwords iCount) .Value = m_astwrows [icount] .join (,) frmwords.txtopway.value = loadall; frmwords.submit (); } // ----------------------------------------------------------------------- // 어휘 경기를하고 문장을 받으십시오 함수 어셈블 () { Var Icount, iwrdcnt, irndindex; var strsentence; // ----------------------------------------------- // 상수 변수 설명 // iCount : 카운터. 정수 // iwrdcnt : 특정 유형의 어휘의 단어 수입니다. 정수 // IrndIndex : 무작위로 생성 된 단어 색인. 정수 // strsentence : 각 범주의 어휘에서 임의의 단어로 구성된 문장. 문자열 유형 // ----------------------------------------------- strsentence =; for (icount = 0; icount < m_ipartcnt; icount) { // 카테고리의 현재 어휘 수가 0 인 경우 // 프롬프트를 제공하고 배치를 중단합니다 iwrdcnt = m_astrwords [icount] .length; if (iwrdcnt == 0) { var strprompt; // ----------------------------------------------- // 상수 변수 설명 // strprompt : 작동 프롬프트. 문자열 유형 // ----------------------------------------------- strprompt = [m_astrsenpart [icount]] 부품은 선택적 단어가 없습니다. strprompt = /nplease 적어도 하나의 단어를 입력하십시오. 경고 (strprompt); txtWord[iCount].select(); 반품; } //随机抽取当前类别词汇中的一个单词 //加入到句子中 iRndIndex = Math.floor(Math.random()*iWrdCnt); strSentence = m_astrWords[iCount][iRndIndex]; //alert(iWrdCnt: iWrdCnt /niRndIndex: iRndIndex); } strSentence = . ; txtSentence.value = strSentence; } //使鼠标移到之处的按钮 //产生点亮的效果 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 :表示词汇分类的数字。整型 //iWrdIdx :单词在单词数组中的索引。整型 //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> </헤드 > <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> 因为是搞笑游戏,所以能使你心情愉快、青春焕发,间接增加找对象的成功率; 因为不用做纸团了,减少了浪费和污染,从而美化了世界环境; 相信还有很多功效,请大家帮我找。哈哈。 </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> </양식 > <!--版权--> <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 '功能:将某类词汇保存到文件中 '输入:1、iSenPart :表示词汇分类的数字。整型 ' 可能的值有: ' 0:主语 ' 1:程度状语 ' 2:地点状语 ' 3:谓语 '输出:对文件操作后的状态值。整型 ' 可能的值有: ' 0:操作成功 ' 1:操作失败 '************************ Function SaveFile(iSenPart) Dim fsoMain, tsfWords Dim iCount, iWrdCnt Dim iOpStatus '------------------------------------------ '常变量说明 'fsoMain :FSO对象 'tsfWords :TEXTSTREAM对象 'iCount :计数器。整型 'iWrdCnt :某类词汇单词的数目。整型 'iOpStatus :文件操作完毕后的状态。整型 '------------------------------------------ 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)) 다음 끝 If tsfWords.Close iOpStatus = 0 SaveFile = iOpStatus 엔드 기능 '************************ '函数名:LoadFile '功能:从文件中载入某类词汇 '输入:1、iSenPart :表示词汇分类的数字。整型 ' 可能的值有: ' 0:主语 ' 1:程度状语 ' 2:地点状语 ' 3:谓语 '输出:对文件操作后的状态值。整型 ' 可能的值有: ' 0:操作成功 ' 1:操作失败 '************************ Function LoadFile(iSenPart) Dim fsoMain, tsfWords Dim strLoaded Dim iOpStatus '------------------------------------------ '常变量说明 'fsoMain :FSO对象 'tsfWords :TEXTSTREAM对象 'strLoaded :某类词汇所有单词构成的字符串。字符串型 'iOpStatus :文件操作完毕后的状态。整型 '------------------------------------------ Set fsoMain = Server.CreateObject(SCRIPTING.FILESYSTEMOBJECT) If fsoMain.FileExists(m_strFilePath & m_astrFileName(iSenPart)) = True Then '如果存在纪录文件 strLoaded = Set tsfWords= fsoMain.OpenTextFile(m_strFilePath & m_astrFileName(iSenPart), 1) tsfWords.SkipLine Do While tsfWords.AtEndOfStream = False strLoaded = strLoaded & tsfWords.ReadLine & , 고리 If strLoaded <> Then strLoaded = Left(strLoaded, Len(strLoaded) - 1) m_astrWords(iSenPart) = Split(strLoaded, ,) 또 다른 m_astrWords(iSenPart) = Empty 끝 If tsfWords.Close iOpStatus = 0 또 다른 '如果不存在纪录文件 iOpStatus = 1 끝 If LoadFile = iOpStatus 엔드 기능 %> <% '以下是服务器端脚本 '用于测试的函数和过程 Sub Show(strDef) Response.Write strDef & : & Eval(strDef) & <br> 종료 서브 Sub ShowMethod() Response.Write Request Method: & Request.ServerVariables(REQUEST_METHOD) & <br> 종료 서브 Sub ShowForm() 희미한 아이 카운트 Dim strProp iCount = 0 Response.Write *********Form Information******<br> For Each strProp In Request.Form iCount = iCount 1 Response.Write iCount & . & strProp & : & Request.Form(strProp) & <br> 다음 Response.Write *********Form End**************<br> 종료 서브 %> |
分享:ASP 3.0高级编程(十二) 4.2.3 服务器端包含指令的例子本节提供了一些示例页面,可以用来对各种服务器端包含语句进行实验。打开示例网页的子目录Chapter04,显示SSI Directives and the ASP Server Object&rdqu