1

わかりました、この質問の前に、私は vb スクリプトに非常に慣れていませんが、別の開発者が作成したスクリプトに追加する必要があり、彼は不在です。

問題。: プロセスにフィードされるデータを取得しています。私が既に持っているスクリプトは、ここでは触れないいくつかのことを処理します。正しく処理されないことがわかったのは、二重引用符で囲まれたコンマです。

というわけで、こんなデータを取得。:

ジョー、ビル、ジェームズ、アレックス、「Google, Inc」、ローズ、「Kickstarter, LLC」

何が起こるかというと、このスクリプトがプロセス アプリケーションを開始すると、二重引用符で囲まれたこれらのコンマが原因でアプリケーションが異常終了します。このスクリプトを入れて、Google ブロックと Kickstarter ブロックのコンマをもう少しユニークなものに置き換えられるようにする必要があります。

これに対する答えがあればありがたいのですが、このようなことをする何かの方向性などは気にしません.

どんな答えでも大歓迎です。繰り返しますが、vbascript は非常に新しいもので、今日、構文の読み取りを開始しました。

4

1 に答える 1

1

入力データの形式と置換テキストに関する詳細をいくつか省略しました。ただし、実行する必要のあるアプローチは、VBScriptの正規表現機能を使用して入力データのパターンを識別し、「置換」メソッドを使用してそれらを置換することです。これは、VBScriptの正規表現に関する短いMS記事です。

これがどのように見えるかの例です。この例は確かに防弾ではなく、いくつかの仮定を立てていますが、それはあなたが始めるのに役立つと思います:

Dim re, strstr, newstrstr
Dim inputstrarray(7)
Set re = new regexp 

inputstrarray(0) = "Joe"
inputstrarray(1) = "Bill"
inputstrarray(2) = "James"
inputstrarray(3) = "Alex"
inputstrarray(4) = """" & "Google, Inc" & """"
inputstrarray(5) = "Rose"
inputstrarray(6) = """" & "Kickstarter, LLC" & """"

re.pattern = ",\s"  'pattern is a comma followed by a space
For Each strstr In inputstrarray 'loop through each string in the array
    newstrstr = re.Replace(strstr, "_")  'replace the pattern with an underscore
    If StrComp(strstr,newstrstr) Then 
        Wscript.Echo "Replace " & strstr & " with " & newstrstr
    Else
        Wscript.Echo "No Change"   
    End If
Next

出力は次のようになります。

No Change
No Change
No Change
No Change
Replace "Google, Inc" with "Google_Inc"
No Change
Replace "Kickstarter, LLC" with "Kickstarter_LLC"
No Change
于 2012-06-25T23:42:27.683 に答える