冰楓論壇

 找回密碼
 立即註冊
查看: 485|回覆: 4

[求助] Vb.net做跟 txt一樣的搜尋功能(ctrl+F)

[複製鏈接]

146

主題

3

好友

1206

積分

金牌會員

RAY

Rank: 6Rank: 6

UID
96332
帖子
936
主題
146
精華
0
積分
1206
楓幣
124910
威望
1178
存款
0
贊助金額
0
推廣
0
GP
9
閱讀權限
70
性別
保密
在線時間
553 小時
註冊時間
2015-3-23
最後登入
2020-7-2
發表於 2015-6-15 16:58:46 |顯示全部樓層
本帖最後由 rayray9132 於 2015-6-15 17:32 編輯

小弟實在是找遍網路上的教學...
[size=12.727272033691406px]小弟現在想做一個文字搜尋功能
想跟txt記事本一樣
小弟的資料有很多都有相同的名稱
例:
我的帽子
帽子

小弟現在的搜尋功能是輸入"帽子" 就只會找到 "我的帽子"
可是不會再往下找...
Txt記事本的搜尋功能是他會一直往下找 找到沒有符合的
小弟想要txt記事本的搜尋法...簡單來說就是記事本的ctrl+F 的搜尋功能...
  1. <font color="Black">Dim a As String
  2. Dim b As String
  3. a = ItemInStr.Text
  4. b = InStr(ItemALLText.Text, a)
  5. If b Then
  6. ItemALLText.Focus()
  7. ItemALLText.SelectionStart = b - 1
  8. ItemALLText.SelectionLength = Len(a)
  9. End If</font>
複製代碼
這是小弟現在的程式碼..

小弟先感謝了





複製連結並發給好友,以賺取推廣點數
簡單兩步驟,註冊、分享網址,即可獲得獎勵! 一起推廣文章換商品、賺$$

48

主題

2

好友

1050

積分

技術師

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

UID
84499
帖子
985
主題
48
精華
0
積分
1050
楓幣
4189
威望
1017
存款
0
贊助金額
0
推廣
0
GP
0
閱讀權限
100
性別
保密
在線時間
668 小時
註冊時間
2014-11-21
最後登入
2019-2-22

積分勳章 解說達人 論壇粉絲 發帖達人 論壇支持王 懶人勳章 長老勳章 2015年紀念勳章

發表於 2015-6-15 19:03:22 |顯示全部樓層
本帖最後由 anderson101866 於 2015-6-15 19:06 編輯

用indexof
語法1
  1. orginalStr.IndexOf("pattern")
複製代碼
語法2
  1. orginalStr.IndexOf("pattern", startindex)
複製代碼
ex:
  1. orginalStr = "abc abd abc"
  2. i = originalStr("abc")           'i := 0
  3. j = originalStr("abc", i+1)    'j := 8
複製代碼
&
google若用中文找不到, 請善用英文...

cAdT88Z
回覆

使用道具 舉報

146

主題

3

好友

1206

積分

金牌會員

RAY

Rank: 6Rank: 6

UID
96332
帖子
936
主題
146
精華
0
積分
1206
楓幣
124910
威望
1178
存款
0
贊助金額
0
推廣
0
GP
9
閱讀權限
70
性別
保密
在線時間
553 小時
註冊時間
2015-3-23
最後登入
2020-7-2
發表於 2015-6-15 20:31:58 |顯示全部樓層
anderson101866 發表於 2015-6-15 19:03 [url=forum.php?mod=redirect&goto=findpost&pid=1075215&ptid=143450][/url]
用indexof
語法1語法2ex:&
google若用中文找不到, 請善用英文...

感謝and大...先感謝 I(_ _)I
回覆

使用道具 舉報

146

主題

3

好友

1206

積分

金牌會員

RAY

Rank: 6Rank: 6

UID
96332
帖子
936
主題
146
精華
0
積分
1206
楓幣
124910
威望
1178
存款
0
贊助金額
0
推廣
0
GP
9
閱讀權限
70
性別
保密
在線時間
553 小時
註冊時間
2015-3-23
最後登入
2020-7-2
發表於 2015-6-15 22:05:23 |顯示全部樓層
rayray9132 發表於 2015-6-15 20:31 [url=forum.php?mod=redirect&goto=findpost&pid=1075352&ptid=143450][/url]
感謝and大...先感謝 I(_ _)I

Dim a As String
        Dim b As String
        Dim c As Integer
        Dim d As Integer
        a = ItemInStr.Text
        b = ItemALLText.Text
        c = b.IndexOf(a)
        d = b.IndexOf(a, c + 1)
        If d Then
            ItemALLText.Focus()
            ItemALLText.SelectionStart = c
            ItemALLText.SelectionLength = Len(a)
        End If

寫這樣還是一樣...
[發帖際遇]: rayray9132 的房子遭到劉政鴻拆除,損失 4 楓幣. 幸運榜 / 衰神榜
回覆

使用道具 舉報

48

主題

2

好友

1050

積分

技術師

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

UID
84499
帖子
985
主題
48
精華
0
積分
1050
楓幣
4189
威望
1017
存款
0
贊助金額
0
推廣
0
GP
0
閱讀權限
100
性別
保密
在線時間
668 小時
註冊時間
2014-11-21
最後登入
2019-2-22

積分勳章 解說達人 論壇粉絲 發帖達人 論壇支持王 懶人勳章 長老勳章 2015年紀念勳章

發表於 2015-6-16 15:44:59 |顯示全部樓層
rayray9132 發表於 2015-6-15 22:05
Dim a As String
        Dim b As String
        Dim c As Integer

你的程式碼寫甚麼我看不太懂耶
  1.   If d Then '如果d <> 0 表示d不是開頭, p.s. indexof找不到是回傳-1
  2.             ItemALLText.Focus()  
  3.             ItemALLText.SelectionStart = c  '那就把c這個位置出現得文字反白
  4.             ItemALLText.SelectionLength = Len(a)
  5.         End If
複製代碼
沒有邏輯阿..... 你想想你要甚麼功能 在寫吧= =

要搜多次那你要記得上一次搜尋的位置c呀,開個變數把c記起來
,如果C上次有搜過 -> 就從C+1開始搜

直接copy code哪可能可以work,你函數怎麼用 連查都沒有查= =

你還是買本書...

認真覺得你需要有系統的學習,而不是上網問..

點評

rayray9132  感謝and大....  發表於 2015-6-17 07:10
anderson101866  你買本書看好了... 或者找個教程有系統的學= =  發表於 2015-6-16 23:00
rayray9132  and大....區域變數...我沒聽過QQ  發表於 2015-6-16 18:13
anderson101866  因為你開區域變數阿.... 你不是說你有學過C 區域變數跟全域變數的概念0.0  發表於 2015-6-16 17:55
rayray9132  我也是過紀錄上次搜尋到的點,然後把他+1在搜尋 可是我卡在他每次都會把紀錄的點給重置為0...  發表於 2015-6-16 17:25
回覆

使用道具 舉報

您需要登入後才可以回帖 登入 | 立即註冊

正在連接伺服器...
打開冰楓聊天室
廣告刊登意見回饋關於我們職位招聘本站規範DMCA隱私權政策

Copyright © 2011-2020 冰楓論壇, All rights reserved

免責聲明:本網站是以即時上載留言的方式運作,本站對所有留言的真實性、完整性及立場等,不負任何法律責任。

而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。

小黑屋|意見反饋|手機版|Archiver|冰楓論壇

GMT+8, 2020-7-3 03:19

APP Store下載 Play Store下載
回頂部