台灣最大程式設計社群網站
線上人數
831
 
會員總數:245130
討論主題:189035
歡迎您免費加入會員
討論區列表 >> ASP >> [ASP]include檔案的問題..
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
[ASP]include檔案的問題..
價值 : 0 QP  點閱數:19828 回應數:15

樓主

maduka 版主
高級專家
9099 53
6734 2958
發送站內信

捐贈 VP 給 maduka
在下想要作一個判斷,若是成立,才include檔案進來
但是好像不太行的說,因為不管如何,它都會先去檢查Include的部分
不知道有沒有人有遇過這類的問題ㄌ??
  
If 判斷成立 Then
  Response.Write "<!--#include file=""include/init.inc"" -->"
  Response.Write "<!--#include file=""util/util.asp"" -->"
  Response.Write "<!--#include file=""util/db_util.asp"" -->"
End if

上面是部分的程式,但是不管判斷是否成立,都會去作include檔案的動作 .....
有辦法可以解決嗎??

搜尋相關Tags的文章: [ include ] ,
本篇文章發表於2002-03-07 14:26
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應


檢舉此回應
換個方法..我都是這麼做...
<%If 判斷成立 Then%>
  <!--#include file="include/init.inc" -->
  <!--#include file="util/util.asp" -->
  <!--#include file="util/db_util.asp" -->
<%End if%>

沒有必要什麼都用Response.Witer
本篇文章回覆於2002-03-07 18:05
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

maduka
捐贈 VP 給 maduka 檢舉此回應
Sorry
發問的時候打錯了
<%If 判斷成立 Then%>
  <!--#include file="include/init.inc" -->
  <!--#include file="util/util.asp" -->
  <!--#include file="util/db_util.asp" -->
<%End if%>
這種方式我也試過,不過一樣沒用的說...
還是會先去include檔案ㄌ...
本篇文章回覆於2002-03-07 18:10
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應


檢舉此回應
是哦..這..我以前都是用這招ㄝ...

<%if xx=oo then%>
 <!--#include file="include/init.inc" -->
 <!--#include file="util/util.asp" -->
 <!--#include file="util/db_util.asp" -->
<%end if%>



<%select case xxx%>
<%case 1%>
<!--#include file="include/init.inc" -->
<%case 2%>
 <!--#include file="util/util.asp" -->
<%case 3%>
 <!--#include file="util/db_util.asp" -->
<%end select%>

都沒有問題說...
照理論而言...當判斷不成立是不會去執行if裡的程式碼才對...怪怪...
本篇文章回覆於2002-03-07 18:18
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

葉子
檢舉此回應
那如果把
<!--#include file=""include/init.inc"" -->
<!--#include file=""util/util.asp"" -->
<!--#include file=""util/db_util.asp"" -->
儲存在include.asp

然後改成如下...

If 判斷成立 Then
  server.execute "include.asp"
End if

試試看吧

本篇文章回覆於2002-03-07 18:21
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

安安
捐贈 VP 給 傑洛•安 檢舉此回應
恩.. 因為Include他是SSI的語法,ASP不會處理,所以會先被引入,Server.Excute他是ASP語法,所以只會在條件成立時引入
本篇文章回覆於2002-03-07 18:28
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應


檢舉此回應
這個方法我剛剛測試過了..確實是可以的...

我寫了個很簡單的test.asp

<%
     a=request("a")
     if a=1 then
%>
<!--#include file ="說明.txt" -->
<%end i%>

只有當a的值為1時才會show出txt的內容...
本篇文章回覆於2002-03-07 18:30
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

VB Teacher
檢舉此回應
#Include 當然全部都引入
但是只有條件成立才會執行引入的ASP Code
不過建議使用Include 最好寫成Class 或Function SUB
才比較符合Code Reuse的效用
本篇文章回覆於2002-03-07 20:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

maduka
捐贈 VP 給 maduka 檢舉此回應
在下試過用Server.Execute的方式,但是還是做不到的說
因為在include中的檔案都是Function,而且也有include其他的檔案
這是在下完整的程式...

FilePath = Server.Mappath("util\db_util.asp")
If Not fs.FileExists (FilePath) Then
  Response.Redirect "install.asp"
Else
  %>
  <!--#include file="util/db_util.asp" -->
  <%
End if

若是用Server.execute ("util/db_util.asp")的方式
在該檔案中的Function會沒有作用.....

還有人知道其他的方式嗎??
本篇文章回覆於2002-03-08 11:51
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
回應

Allen
捐贈 VP 給 Allen 檢舉此回應
不知道
http://www.asp101.com/articles/michael/dynamicincludes/default.asp
這篇資訊對各位是否有幫助
本篇文章回覆於2002-03-08 11:58
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
回應

葉子
檢舉此回應
哦~~
原來如此

為了怕 include 會找不到 file 是吧!
那何不用
<!--#include virtual="/include/init.inc" -->
<!--#include virtual="/util/util.asp" -->
<!--#include virtual="/util/db_util.asp" -->


本篇文章回覆於2002-03-08 12:04
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
作者回應

maduka
捐贈 VP 給 maduka 檢舉此回應
呵....葉子講對了一半...
是怕找不到檔案沒錯.......

不過並不是說檔案在一定存在喔.......

我大概說一下我要的功能好了....

在進入程式時,判斷util/db_util.asp是否存在
若是不存在,就進入install.asp,在install.asp這個程式中會產生util/db_util.asp這個檔案
若是存在,就將db_util.asp這個檔案include進來...

所以......
而db_util.asp中的內容全部都是
function
...
end function
的內容,所以用Server.execute沒辦法作到真正的include的說....
本篇文章回覆於2002-03-08 13:06
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
回應

Allen
捐贈 VP 給 Allen 檢舉此回應
請問maduka,為何有這個需要啊! 可否告知可以應用在什麼地方 ?
本篇文章回覆於2002-03-08 13:10
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
作者回應

maduka
捐贈 VP 給 maduka 檢舉此回應
^^"
其實這是要用在作安裝的部分
從公司出貨時,會先將util/db_util.asp刪除掉
裝到客戶的電腦時,進行安裝的動作
等到安裝完之後,會自動產生db_util.asp這個檔案,這個檔案儲存使用者在安裝時的設定
並將符合客戶使用環境的Function作一次產生的動作
這時客戶才能開始使用

所以在一進入程式時會先去Check該檔案是否存在,若是不存在就進入安裝畫面
若是存在就include進來..

會不會像是把ASP當Packages來用啊^^"
本篇文章回覆於2002-03-08 13:16
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
14樓
回應

葉子
檢舉此回應
那我的建議是...
再建一個include的file,專門用來check file
<%
if (util/db_util.asp 不存在) then
  Response.Redirect "安裝的asp (install.asp)"
end if
%>

然後就在最開頭的地方這樣加入..
<!--#include file="剛才check用的file" -->
<!--#include file="include/init.inc" -->
<!--#include file="util/util.asp""-->
<!--#include file="util/db_util.asp" -->
本篇文章回覆於2002-03-08 13:25
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
15樓
回應

VB Teacher
檢舉此回應
http://www.learnasp.com/learn/inc.asp
http://www.learnasp.com/learn/includedynamic.asp
http://www.learnasp.com/learn/includeasphttp.asp
http://www.learnasp.com/learn/incwin2k.asp
http://www.learnasp.com/learn/booksample.asp
這邊有Include 最詳細的解說
本篇文章回覆於2002-03-08 13:40
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.