Re: [VBA ] 怎樣抓txt檔案裡的指定字串??

看板Visual_Basic作者 (VBA API)時間8年前 (2015/12/21 22:01), 編輯推噓2(2011)
留言13則, 5人參與, 最新討論串3/3 (看更多)
※ 引述《jacky33 (VBA API)》之銘言: : 請問各位高手,語法要怎麼寫可以抓txt檔裡或是可以用txt(or wardpad)打開的檔案。 : 檔案內容如下: : Mp1 Iinp n1 Vdd Vdd pch w=1u l=1u m=1 : Mq2 Ixxxp n231 Vd Vd pch w=200u l=1u m=1 : Mr3 1 2 3 4 pch w=3u l=1u m=1 : Q1:Mp1,Mq2,Mr3這三列可能在檔案內的任何位置,而且每一列開頭一定是"M",由左到右的順序 : 一定是Mp1 Iinp n1...等等。請問: : 我要如何找出或定義檔案裡"所有""M"開頭的列。比如說檔案裡共有3列"M"開頭的, : 名字分別叫"Mp1","Mq2","Mr3"。如何找到共"3"列跟其相對應的名字。 : Q2:比如說,當找到或是定義出Mp1這一列時,我要如何指定取出w=後面"1u"的這字串?? : 或是Mq2裡的l=1u 的"1u"?? : 感謝回覆!! 首先小弟很抱歉,還是有些問題想請教。 試過Mid,InStr等等來判斷字串,他們都必須知道並指定,比如w=1u,"1u"為2位元。 如果不知道"w="之後為幾位元,就是數字不確定,只知道數字後有個"空位"再接l=1u 那要如何抓出"w="之後的數字? 我是想到先找到"w="在檔案的位址,再判讀出到達 l=1u之前的"空位"之間有幾位元, 藉此抓出"w="後的答案,但是我不知道如何判讀"w="到"空位"之間的位元數怎麼寫? 還是有別的方法,請指教,謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.228.10.37 ※ 文章網址: https://www.ptt.cc/bbs/Visual_Basic/M.1450706481.A.1C5.html

12/22 00:31, , 1F
你真的了解 InStr 的作用了嗎?
12/22 00:31, 1F

12/22 00:32, , 2F
然後認真的, 最一開始的文章下面推文都要你去找書看
12/22 00:32, 2F

12/22 00:32, , 3F
這些東西書裡一定會有範例教你他是什麼意思要怎麼用
12/22 00:32, 3F

12/22 22:42, , 4F
VBA有很原始的regex,你描述的勉強可以用
12/22 22:42, 4F

12/22 22:42, , 5F
但是最好還是換到.NET,因為VBA那套實在太破舊了
12/22 22:42, 5F

12/22 23:30, , 6F
LPH66大andMOONRAKER大,非常感謝,但是畢竟VBA比較普遍
12/22 23:30, 6F

12/22 23:31, , 7F
我會再找找看有沒有別的方式,謝謝大家。
12/22 23:31, 7F

12/23 11:06, , 8F
你馬好VBA比較普遍啦 .NET用又不要錢 連VS都免錢
12/23 11:06, 8F

12/23 11:09, , 9F
VBA的regex就是承接VB6爛得不忍卒睹 你爽用隨便你
12/23 11:09, 9F

12/23 19:58, , 10F
vba很好用的,這裡,只要善用split() 即可達到目的。
12/23 19:58, 10F

12/23 20:13, , 11F
str=split(split(sLine,"l=")(1)," ")(0)
12/23 20:13, 11F

12/23 21:16, , 12F
peakhour大,收到,感謝。
12/23 21:16, 12F

12/25 12:52, , 13F
有個函數是len()
12/25 12:52, 13F
文章代碼(AID): #1MU0On75 (Visual_Basic)
文章代碼(AID): #1MU0On75 (Visual_Basic)