作業中の文字列リストが 2 つあります。キーワードのリストを持つものと、除外キーワードのリストを持つものです。リストを検索して、除外キーワードを含まないリスト アイテムを選択し、3 番目のキーワード リストに出力できるようにしたいと考えています。私は AnsiPos 関数を使用していましたが、完全な単語ではなく、単語の一部である場合は除外キーワードが見つかりました。
これを行うための比較的簡単な方法に関する提案はありますか? 速度はそれほど重要ではありませんが、いいでしょう。
私がやろうとしていることの例:
キーワード リスト:
ネコ ナマズ フィッシュスティック ドッグフード
除外キーワード リスト:
魚
返される値:
ネコ ナマズ ドッグフード
これは私がこれまでに得たものです..これは機能しません。私は以下からの情報を使用しました: Is There An Efficient Whole Word Search Function in Delphi?
function ExistWordInString(aString: PAnsichar; aSearchString: string;
aSearchOptions: TStringSearchOptions): Boolean;
var
Size : Integer;
begin
Size := StrLen(aString);
result := SearchBuf(aString, Size, 0, 0, aSearchString, aSearchOptions) <> nil;
end;
procedure TForm2.Button1Click(Sender: TObject);
var
i, j, index: integer;
s: string;
stl: tstringlist;
begin
stl := TStringList.Create;
stl.Text := listbox1.Items.Text;
for I := 0 to stl.Count - 1 do
begin
for j := 0 to listbox2.Count - 1 do
begin
if not ExistWordInString(PAnsiChar(listbox2.Items.Strings[j]),
listbox1.Items.Strings[i], [soWholeWord, soDown])
then
listbox3.Items.Append(stl.Strings[i]);
end;
end;
end;