2015-12-07 98 views
0

我是新來的VBScript和我們利用解決方案具有VBScript來操縱數據VBScript數組?如果然後其他

做的,如果那麼否則是沒有問題的,但是當我有一個大的數據集,很少輸出我希望使用一些類型的數組,可我的值存儲在數組中,仍然使用如果然後其他

的要求,但環顧四周後非常基本的似乎變得有點糊塗了對語法

簡單,如果再否則這是罰款,但如果接下來會寫很多

If Input1 = "A1" Then 
    Output0 = "A" 

    ElseIf Input1 = "B1" Then 
    Output0 = "B" 

    Else 
    Output0 = "C" 
    End If 

我需要實現的是,請注意值是不一樣的,並修剪不會從下面的

If Input1 = "A1,A2,A3" Then 
Output0 = "A" 

ElseIf Input1 = "B1,B2,B3" Then 
Output0 = "B" 

Else 
Output0 = "C" 
End If 

使用SQL的要求我會做一個IN聲明

+0

你看着過濾器命令,HTTP表達式列表:/ /www.tutorialspoint.com/vbscript/vbscript_arrays.htm? –

+0

@JBKing就OP的例子而言,'Filter()'可以工作,但是如果值不是那麼多的話。例如'AB1'將返回'Output0 =「A」'和'Output0 =「B」'。 – Lankymart

回答

0

爲了完整起見,你也可以使用一個Select Case語句,它允許在Case

Select Case Input1 
    Case "A1", "A2", "A3" 
     Output0 = "A" 
    Case "B1", "B2", "B3" 
     Output0 = "B" 
    Case "C1", "C2", "C3" 
     Output0 = "C" 
    Case Else 
     Output0 = "D" 
End Select 
+0

完美除了結束選擇不是案例 –

+0

對不起,我應該測試它 –

3

VBscript將輸入映射到輸出的工具是Dictionary。因此,使用一個在:

>> Set d = CreateObject("Scripting.Dictionary") 
>> d("A1") = "A" 
>> d("A2") = "A" 
>> d("B1") = "B" 
>> d("C") = "C" 
>> For Each k In Split("C B1 A2 B2 A1") 
>>  If d.Exists(k) Then 
>>  WScript.Echo k, d(k) 
>>  Else 
>>  WScript.Echo k, "???" 
>>  End If 
>> Next 
>> 
C C 
B1 B 
A2 A 
B2 ??? 
A1 A 
+0

出於興趣,您使用什麼來生成代碼示例? – Lankymart

+1

我的大腦和基於http://www.visualbasicscript.com/WeeklyMonthly-Challenge-m47585-p2-print.aspx的REPL。另類:http://www.planetcobalt.net/sdb/vbsh.shtml –

+0

感謝您的建議,但這似乎與做了很多,如果然後其他語句,多一點挖後,我會採取這種的方法,但我會建立一個SQL表第1然後稱之爲數據的中間表 –