[VB6 ] 迴圈計次的問題...

看板Visual_Basic作者 (go let it out...)時間19年前 (2005/10/03 23:33), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
假設,我有一個txt檔內容為: docid word ------------------ 1 aa 1 cc 1 aa 1 bb 1 jj 1 aa 1 ee 1 bb 1 pp 1 5y 2 aa 2 xx 2 aa 2 bb 2 kk 2 jj 2 jj 2 op 2 df 2 4t 我想要求出每個字的A.B值,並且列印在旁邊, A值=word在該文章中的次數,ex:aa在docid=1裡的A值=3,在docid=2時為2 B值=word出現的文章數,ex:aa在docid=1、docid=2的B值都為2 也就是我想要變成一個txt檔為: docid word A B ----------------------------------- 1 aa 3 2 1 cc 1 1 1 aa 3 2 1 bb 2 2 1 jj 1 2 1 aa 3 2 1 ee 1 1 1 bb 2 2 1 pp 1 1 1 5y 1 1 2 aa 2 2 2 xx 1 1 2 aa 2 2 2 bb 1 2 2 kk 1 1 2 jj 2 2 2 jj 2 2 2 op 1 1 2 df 1 1 2 4t 1 1 我的做法是將docid、word分成兩個檔,然後在存到不同的array Dim docid(100000), word(100000) Open App.Path & "\docid.txt" For Input As #1 i = 1 Do Until EOF(1) Input #1, docid(i) i = i + 1 Loop Close #1 Open App.Path & "\word.txt" For Input As #2 i = 1 Do Until EOF(2) Input #2, word(i) i = i + 1 arrlen = i Loop Close #2 F = FreeFile Open App.Path & "\AB.txt" For Output As #F For i = 1 To arrlen - 1 A = 0 B = 0 For j = 1 To arrlen - 1 If word(i) = word(j) And docid(i) = docid(j) Then A = A + 1 End If If word(i) = word(j) And docid(i) <> docid(j) Then--->"錯了" B = B + 1 End If Next j Print #F, word(i), A, B Next i Close #F ----------------------------------------------------------------- 結果A值可以算出來,但是B值就會出錯(我知道邏輯哪裡錯了) 但是我就是不知道要怎樣寫才可以完成B值的算法,明明看似 很簡單,就是算有出現某word的doc而已,但我就是想不出來。 希望高手幫我解個謎,謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.34.68.202
文章代碼(AID): #13GKylgg (Visual_Basic)
討論串 (同標題文章)
文章代碼(AID): #13GKylgg (Visual_Basic)