史萊姆論壇

返回   史萊姆論壇 > 專業主討論區 > 程式語言討論區
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2005-06-25, 09:46 AM   #1
劍痞憶秋年
長老會員
 
劍痞憶秋年 的頭像
榮譽勳章
UID - 15
在線等級: 級別:31 | 在線時長:1096小時 | 升級還需:56小時級別:31 | 在線時長:1096小時 | 升級還需:56小時級別:31 | 在線時長:1096小時 | 升級還需:56小時級別:31 | 在線時長:1096小時 | 升級還需:56小時級別:31 | 在線時長:1096小時 | 升級還需:56小時級別:31 | 在線時長:1096小時 | 升級還需:56小時
註冊日期: 2002-12-06
住址: 步雲崖
文章: 280
精華: 0
現金: 15847 金幣
資產: 20867 金幣
預設 [野人獻曝]自己寫的 Function(找字串)

' 目的:找出 參數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, 收花文章: 33 篇, 收花: 130 次
回覆時引用此帖
 



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 08:55 AM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2025, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1