4

VBScript でいくつかのコードを記述し、比較する必要があるテキスト ファイルにバージョン番号文字列を含める必要があります。このコードをテストとして書くと:

option explicit

Dim VersionString
VersionString = "6.2.1"

Dim Version
Version = CDbl (VersionString)

Version = Version * 100

CDbl 行でエラーが発生します。

Microsoft VBScript runtime error: Type mismatch: 'CDbl'

この文字列値をどのように読み取って比較すればよいですか?

4

2 に答える 2

11

「6.2.1」は、文字列としてフォーマットされた Double ではありません。したがって、CDbl() は変換できません。オプションは次のとおりです。

  1. バージョンを文字列として扱います。「6.9.1」を「6.10.2」よりも小さくする必要がある場合は悪い
  2. "." の文字列を Split() します。パーツ (おそらく整数/長整数型に変換) を個別に処理します。そのような配列の比較関数を書く必要があります
  3. "." を削除し、結果の文字列を CLng します。「6.10.2」のようなバージョンでは壊れます
  4. "*" の文字列を Split() し、乗算 + '桁' を追加して 1 つの (整数) バージョン番号を取得します (サンプルでは 6 * 100 + 2 * 10 + 1 * 1 = 621)。「15.00.30729.01」のようなバージョンではより複雑になる場合があります
于 2013-09-05T13:39:24.003 に答える