変なコード

なんか変なコードを見た。ちなみ VBScript(in ASP)。

Set Dict = CreateObject("Scripting.Dictionary")
For Each Line In Lines
    Ary = Split(Line, "=")
    For I = 1 To UBound(Ary) - 1
        Ary(1) = Ary(1) & "=" & Ary(1 + I)
    Next
    Dict(Ary(0)) = Ary(1)
Next

なんだかいろいろひどい。

ループの範囲が変

ループ範囲も、Ary(1 + I) で参照するのも、必然性がなく、良く分からない。せめて、2 To UBound(Ary) の方が、まだ分かりやすいのではないか。

Set Dict = CreateObject("Scripting.Dictionary")
For Each Line In Lines
    Ary = Split(Line, "=")
    For I = 2 To UBound(Ary)
        Ary(1) = Ary(1) & "=" & Ary(I)
    Next
    Dict(Ary(0)) = Ary(1)
Next

Ary の役割が分かりにくく、曖昧

分割した配列に直接代入しているため、Ary の役割がよく分からなくなっている。
素直に別の変数を用意した方が良い。

Set Dict = CreateObject("Scripting.Dictionary")
For Each Line In Lines
    Ary = Split(Line, "=")
    Key = Ary(0)
    Value = ""
    For I = 1 To UBound(Ary)
        Value = Value & "=" & Ary(I)
    Next
    Dict(Key) = Value
Next

Split の仕様を知らない

まぁ、Split に分割数を指定すればいいよねぇ。

Set Dict = CreateObject("Scripting.Dictionary")
For Each Line In Lines
    Ary = Split(Line, "=", 2)
    Dict(Ary(0)) = Ary(1)
Next