作者 主題: 請問ASP split的問題  (閱讀 6712 次)

0 會員 與 1 訪客 正在閱讀本文。

kgl9743

  • 可愛的小學生
  • *
  • 文章數: 17
    • 檢視個人資料
請問ASP split的問題
« 於: 2008-05-30 10:42 »
各位高手 麻煩指點一下!
問題1
   我的ActionNameList 原始真正樣式是==> 172.16.9.39$_$_!_ACTION$_$_!_ACTION1$_$
   那我想把它切成 172.16.9.39     ACTION     ACTION1  這三段放到 aActName裡面
   可是我發現我怎麼切似乎都不對 因為
            aActName = Split(ActionNameList,"$_$_!_")
            這種切法 會導致最後一項 殘留 變成 ACTION1$_$
   難道說可以分開兩次切?
                       aActName = Split(ActionNameList,"$_$")
                       aActName1 = Split(aActName,"_!_")
                       可是aActName是個array 可以繼續拿來切嗎?
                      
問題2
     我切出來的結果丟到aActName 他是個array 但是為何會與其他array 型態不符?
     這樣說 大大可能不太了解!我把我覺得出問題的地方 貼出來!
dim ActName()         'declare a array to store the action name
dim Tid               'a variable to store the task id (normal task)
dim ActIndex          'a variable to store the total action of a task   
   if (TaskType("atype") <> SECURITY_TASK_TYPE) then
   call GetActionCountAndName(tid,ActName,ActIndex)  <=== ActName 他是個ARRAY型態 我把該函式貼最下面
     redim ArrVal(2,ActIndex-1)    '2: 最近的三次(0-2)
     redim MAArray(2,ActIndex-1)

   elseif (TaskType("atype") = SECURITY_TASK_TYPE) then
   
   set obj = Server.CreateObject("MSP.DeAgenda.1")
   if obj.DeFile(Reg.GetIISPath & fpath) = 0 then
      response.write "Cant Find Agenda File!"
      response.end
   elseif obj.DeFile(Reg.GetIISPath & fpath) <> 0 then
      ActionNameList = obj.GetActionNameAndCheckString
         
      ActName = Split(ActionNameList,"$_$_!_")      <===我希望能把ActName在這邊拿來用 為何會說型態不符?
                  
      ActIndex = ubound(ActName)
     
      response.end
      redim ArrVal(2,ActIndex-1)    
      redim MAArray(2,ActIndex-1)
      end if
      
      
下面是FUNCTION      
      
Sub GetActionCountAndName(tid,ByRef outNameArray, ByRef outCount)
   set rsAction = conn.execute("select distinct TransactionName, TOrder from XXXXXXXXXX略")
   while not rsAction.eof
      ReDim Preserve outNameArray(outCount)                 '宣告一outNameArray動態陣列,並依次遞增容量
      outNameArray(outCount) = rsAction("TransactionName")  '依次存取transactionname;將所有的TransactionName 存放在這個陣列
      outCount = outCount + 1
      
      rsAction.movenext
   wend
   rsAction.close
   
   set rsAction = nothing
End Sub
« 上次編輯: 2008-05-30 11:12 由 kgl9743 »

kgl9743

  • 可愛的小學生
  • *
  • 文章數: 17
    • 檢視個人資料
回覆: 請問ASP split的問題
« 回覆 #1 於: 2008-05-30 14:18 »
小弟後來想到這樣的方式 已經解決了~
ActionNameList = replace(ActionNameList,"$_$","") '目的先把ActionNameList裡面的$_$拿掉
      '下面會把ActionNameList切成數個actionname,然後丟到ActName
      dim tempArr
      tempArr = Split(ActionNameList,"_!_")      
      redim ActName(Ubound(tempArr))
      For i=0 to Ubound(tempArr)
         ActName(i) = tempArr(i)
      Next