![]() |
|
論壇說明 |
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
|
主題工具 | 顯示模式 |
![]() |
#1 |
長老會員
|
![]() ' 目的:找出 參數1 中 ((1)第 參數3 次 or (2) 參數4 之後) 參數2 出現的位置
補強 instr 只能定點找,而不能依第幾個找!! ' 用法: (1)JetCountStrInstrTimesLocate("abcdefggfedcba","a",2) 找出 第 2 個 "a" 出現的位置 (2)JetCountStrInstrTimesLocate("abcdefggfedcba","b",0,5) 找出第 6 碼後的 第一個 b 出現的位置 Public Function JetCountStrInstrTimesLocate%(ByVal JetSource$, ByVal JetFindStr$, Optional ByVal JetTimes%, Optional ByVal JetTempInstr%, Optional ByVal JetTrue_UCASE As Boolean) ' 目的:找出 參數1 中 ((1)第 參數3 次 or (2) 參數4 之後) 參數2 出現的位置 ' ============================================================================= ' 參數一 (JetSource$) :待找的大目標 ' 參數二 (JetFindStr$) :待找的小目標 ' ----------------------------------------------------------------------------- ' 【(2)非必要參數】 ' 參數三 (JetTimes%) :以 參數三 次 ==> 來判斷 ' 參數四 (JetTempInstr%):省略掉 前參數四個字元 ' (◎當 參數三 = 0 才會有效) ' 參數五 (JetTrue_UCASE):(是否) 分大小寫 ' ============================================================================= Dim JetFound%, JJJ% ' (1)第 參數三 次 If JetTempInstr% = 0 Then If JetTimes = 0 Then JetTimes = 1 If Not JetTrue_UCASE Then JetFound = InStr(UCase(JetSource$), UCase(JetFindStr$)) Else JetFound = InStr(JetSource$, JetFindStr$) End If Do While (JetFound <> 0) And (JJJ + 1 <> JetTimes) JJJ = JJJ + 1 If Not JetTrue_UCASE Then JetFound = InStr(JetFound + Len(JetFindStr$), UCase$(JetSource$), UCase$(JetFindStr$)) Else JetFound = InStr(JetFound + Len(JetFindStr$), JetSource$, JetFindStr$) End If Loop ' (2)參數四 之後 Else If Not JetTrue_UCASE Then JetFound = InStr(JetTempInstr% + 1, UCase$(JetSource$), UCase$(JetFindStr$)) Else JetFound = InStr(JetTempInstr% + 1, JetSource$, JetFindStr$) End If ' (2005-0622新增)混合兩種參數方式 ' ○還不是很確定這部份程式運作 (是否) 沒問題?! Select Case JetTimes Case 0, 1 Case Else Do While (JetFound <> 0) And (JJJ + 1 <> JetTimes) JJJ = JJJ + 1 If Not JetTrue_UCASE Then JetFound = InStr(JetFound + Len(JetFindStr$), UCase$(JetSource$), UCase$(JetFindStr$)) Else JetFound = InStr(JetFound + Len(JetFindStr$), JetSource$, JetFindStr$) End If Loop End Select End If JetCountStrInstrTimesLocate = JetFound End Function |
__________________ 一切有為法 如夢幻泡影 如露亦如電 應作如是觀 |
|
![]() |
送花文章: 150,
![]() |