PCDVD數位科技討論區
PCDVD數位科技討論區   註冊 常見問題 標記討論區為已讀

回到   PCDVD數位科技討論區 > 其他群組 > 疑難雜症區
帳戶
密碼
 

回應
 
主題工具
nick0912
Major Member
 
nick0912的大頭照
 

加入日期: Oct 2004
文章: 138
想請教一個問題:有關於答案篩選方面指導

如果有10000多題單選題,前面都有正解,再來試題目,最後是選項(有4個選1個),該如何用函數或公式只選擇出正確選項,其他非必要之錯誤選項可刪除或消失
範例如下:
52.(2)機關委託廠商辦理專案管理,得視工程性質及實際需要,將下列何者一併委託辦理:(1)工程施工;(2)施工監造;(3)統包;(4)細部設計。

有何程式或方法可直接篩選成如下:
52.(2)機關委託廠商辦理專案管理,得視工程性質及實際需要,將下列何者一併委託辦理:(2)施工監造。
     
      
舊 2008-11-22, 12:15 AM #1
回應時引用此文章
nick0912離線中  
sparc10
Junior Member
 
sparc10的大頭照
 

加入日期: Jun 2003
您的住址: 蔡英文和寶和會!
文章: 820
建議樓主可考慮用VBA/PERL/Python等簡單的程式語言來完成.
VBA/PERL/Python相關介紹請見YAHOO知識或其他網站.
 
舊 2008-11-22, 08:16 AM #2
回應時引用此文章
sparc10離線中  
nick0912
Major Member
 
nick0912的大頭照
 

加入日期: Oct 2004
文章: 138
引用:
作者sparc10
建議樓主可考慮用VBA/PERL/Python等簡單的程式語言來完成.
VBA/PERL/Python相關介紹請見YAHOO知識或其他網站.

經查詢,還是無所獲!!請問有何方式可幫忙!!
舊 2008-11-22, 04:52 PM #3
回應時引用此文章
nick0912離線中  
sparc10
Junior Member
 
sparc10的大頭照
 

加入日期: Jun 2003
您的住址: 蔡英文和寶和會!
文章: 820
引用:
作者nick0912
經查詢,還是無所獲!!請問有何方式可幫忙!!
我的原意是 讓樓主了解何謂VBA後
就能閱讀相關教學文章 並自行解決這問題.
而樓主說一無所獲可能是您只作到第一歩而已.

我的VBA知識都忘了差不多了,
但個人以為此需求應能以VBA完成.
我的想法是把所有題目都複製到EXCEL中
再用其內建的VBA編輯器完成需求.
而VBA程式碼產生方式有下列三種.

一>樓主自行去書局/圖書館閱讀EXCEL書籍 以便學會VBA.
我認為
1.可用"。"作為程式判斷每題結尾, 然後將其個別地讀進陣列中.
2.可用":"作為程式判斷"題目"與"選項"的不同.
3.可用"()"作為程式判斷何處為"標準答案".

PS: 雖然很想幫您 但我真得想不起來VBA怎麼寫. >_<

二>樓主在"YAHOO知識"發文詢問"如何用VBA完成此需求"
PS: 您可能會被誤認成"要交作業的學生". ╮(﹀_﹀")╭

三>樓主在"PCDVD疑難雜症區"發文詢問"如何用VBA完成此需求"
PS: 除非您先寫出部分程式碼 否則可能沒人回覆喔.

此文章於 2008-11-22 07:48 PM 被 sparc10 編輯.
舊 2008-11-22, 07:47 PM #4
回應時引用此文章
sparc10離線中  
kec
Major Member
 
kec的大頭照
 

加入日期: Feb 2004
您的住址: Terran Empire
文章: 283
今天有點無聊,拿樓主的問題用Python寫了個小程式。程式在Windows下的Python IDE (IDLE)用樓主的範例來測試沒有問題。

因為是隨手寫的程式,沒有註解,也沒有考慮一些例外狀況。至於如何改進這個程式或改寫成其他程式語言,就留給樓主當習題了。

代碼:
# -*- coding: big5 -*- 

f = open('questions.txt','r')

for q in f:
    a = {}
    q = q.lstrip().rstrip('\n')
    
    n = q.find('.')
    if n == -1:
        print '------'
        continue
    qn = q[0:n]
    try:
        int(qn)
    except ValueError:
        print '------'
        continue

    n = q.find(')')
    if n == -1:
        print '------'
        continue
    ca = q[n-1]
    try:
        int(ca)
    except ValueError:
        print '------'
        continue

    n2 = q.find('(1)',n+1)
    if n2 == -1:
        print '------'
        continue
    qt = q[n+2:n2]

    n = q.find('(2)',n2+1)
    if n == -1:
        print '------'
        continue
    a['1'] = q[n2:n-2]

    n2 = q.find('(3)',n+1)
    if n2 == -1:
        print '------'
        continue
    a['2'] = q[n:n2-2]

    n = q.find('(4)',n2+1)
    if n == -1:
        print '------'
        continue
    a['3'] = q[n2:n-2]

    a['4'] = q[n:-2]
   
    print qn + '.(' + ca + ')' + qt + a[ca] + '。'

f.close()
舊 2008-11-25, 11:27 AM #5
回應時引用此文章
kec離線中  


回應


POPIN
主題工具

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

vB 代碼打開
[IMG]代碼打開
HTML代碼關閉



所有的時間均為GMT +8。 現在的時間是06:37 AM.


vBulletin Version 3.0.1
powered_by_vbulletin 2025。