各オブジェクトの特定の列でテキスト文字列を検索し、その文字列が繰り返される回数を数えたいと考えています。
たとえば、列「XX」を文字列として定義し、すべてのオブジェクトの列「XX」でテキスト「hello」を見つけたいとします。
それに加えて、「こんにちは」が見つかるたびに、スクリプトの最後に順番に数えて、「こんにちは」の合計量を表示する必要があります。
コマンドfindPLainTextを使用しようとしましたが、テキスト「hello」がオブジェクトで見つかると停止します。したがって、たとえば「こんにちは、ここに 2 つのこんにちはがあります」などの同じオブジェクトで、最初のテキストが見つかると、2 番目のテキストは検索またはカウントされません。
どうすればそれができますか?
よろしくお願いします!
編集:これらすべてを3つのタスクに分けました:
1.- 各オブジェクトの文字列を定義するために、いくつかの列のテキストを抽出します。
2.- その列のテキスト内で探している 2 番目の文字列を定義します。
3.- 2 番目の文字列が見つかった回数を数えます。
最初の 2 つのタスクを完了しました。
int n=0
Column c
Object o
Module m
Buffer b = create
for o in document m do {
b = text(column 0, o) text(column 1,o) text(column 2,o)
string s = stringOf b
string sub ="XXX"
if (findPlainText(s, sub, offset, len, true)) { n += 1 }
}
print n
これにより、列 0、1、および 2 からテキストを取得し、同じ文字列にまとめます。その後、「XXX」を探しているテキストを定義します。そして、全体 n は、それが見つかった回数を教えてくれます。
ただし、このスクリプトは、テキストが特定のオブジェクトで最初に検出されると、次のオブジェクトに続くため、正しく機能しません。したがって、テキストはオブジェクトごとに 1 回だけ見つかります。ただし、同じテキスト「XXX」が同じ文字列 s に何度も含まれているかどうかはカウントできません (たとえば、s="XXX and XXX but XXX" かどうか、このスクリプトは 3 ではなく 1 をカウントします。
スクリプトを修正して、誰かが私を助けてくれませんか?
よろしくお願いします!