私のコードを見るために別の目をしたいと考えています。私は比較的大きなIf ... Else ...ステートメントを書いています。すべてが正しくコーディングされているようです。私は全体のスクリプトを踏んだが、1つのスポットは、私に与えることを続けている"Expected 'End If'"
それは私がそれを必要としないように見えるとき。ElseステートメントでEnd Ifステートメントが見つからないというエラーが発生した場合
簡単に言えば、私は言いたいことがあります:もしかしたら、これらのことをしてください。そうでなければ、それらの事のうちの1つだけをしてください。
ここでは、コードのブロックです:
If(sLogFile <> "" AND nPing <> 1) Then
pingStatus = 1
If(findTag(sLogFile, daRunning) = 1) Then
daStatus = 1
Else If(findTag(sLogFile, daNotRunning) = 1) Then
daStatus = 2
Else
daStatus = 3
End If
If(daStatus = 1 AND findTag(sLogFile, daDataFlowing) = 1) Then
daFlowStatus = 1
Else If(daStatus = 1 AND findTag(sLogFile, daDataNotFlowing) = 1) Then
daFlowStatus = 2
Else If(daStatus = 1 AND findTag(sLogFile, daDataUnchecked) = 1) Then
daFlowStatus = 3
Else If(daStatus <> 1) Then
daFlowStatus = 4
End If
If(findTag(sLogFile, aeRunning) = 1) Then
aeStatus = 1
Else If(findTag(sLogFile, aeNotRunning) = 1) Then
aeStatus = 2
Else
aeStatus = 3
End If
If(findTag(sLogFile, aeDataUnchecked) = 1) Then
aeFlowStatus = 2
Else If(findTag(sLogFile, aeDataExecutionError) = 1) Then
aeFlowStatus = 3
Else If(findTag(sLogFile, aeDataConnectionError) = 1) Then
aeFlowStatus = 4
Else If(findTag(sLogFile, aeTimeStamp) = 1) Then
location = InStr(sLogFile, aeTimeStamp)
leftTrimmedString = LTrim(Mid(sLogFile, (location - 2)))
location = InstrRev(leftTrimmedString, ":")
dateString = Trim(Mid(leftTrimmedString, 1, (location + 5)))
timeDiff = DateDiff("h", dateString, Now)
If(timeDiff > 5) Then
aeFlowStatus = 5
Else
aeFlowStatus = 1
End If
End If
Else If(nPing = 1) Then
pingStatus = 2
If(findTag(sLogFile, aeDataUnchecked) = 1) Then
aeFlowStatus = 2
Else If(findTag(sLogFile, aeDataExecutionError) = 1) Then
aeFlowStatus = 3
Else If(findTag(sLogFile, aeDataConnectionError) = 1) Then
aeFlowStatus = 4
Else If(findTag(sLogFile, aeTimeStamp) = 1) Then
location = InStr(sLogFile, aeTimeStamp)
leftTrimmedString = LTrim(Mid(sLogFile, (location - 2)))
location = InstrRev(leftTrimmedString, ":")
dateString = Trim(Mid(leftTrimmedString, 1, (location + 5)))
timeDiff = DateDiff("h", dateString, Now)
If(timeDiff > 5) Then
aeFlowStatus = 5
Else
aeFlowStatus = 1
End If
End If
End If
誤差を約2/3方法ダウン(Else If(nPing = 1) Then
)のメインElse If
で起こって保持します。私はその行にエラーが表示されます。
End If
をElse IFの上に置き、Else If
をIf
に変更してブロックを2つのブロックに分割しようとしました。それは私がそれをするときに機能しますが、私は本当に2つのif文を必要としません。
それで、私は混乱したか、通訳者に問題がありますか?
「Else If」はVBScriptでは有効な構文ですが、対応する「End If」もElseブロック内に表示する必要があります。つまり、Elseブロックは別のIfブロックをカプセル化します。 – Nilpo
@Nilpoはストレッチではないですか? 'Else'ブロックの中に入れ子にされた' If'について話しているのであれば、実際の 'If'ステートメントは同じ行で始めることはほとんどありません。マシューは、正しい構文が正しいかどうかは 'ElseIf'です。 – Lankymart
@ Lankymartはい、それは私が言っていることです。ネストされたIfは同じ行で始まり、有効な構文です。 – Nilpo