メモリ ストリーム (および複数の文字列) 内の文字列を検索し、true または false を返す最も簡単な方法は何ですか?
質問する
4725 次
1 に答える
2
var ms:TMemoryStream;
strS:TStringStream;
aStr:string;
aPos:integer;
found:boolean;
begin
ms:=TMemoryStream.Create;
ms.LoadFromFile('c:\aFile.txt');
strS:=TStringStream.Create;
strS.LoadFromStream(ms);
aPos:=pos(aStr,strS.dataString);
found:=aPos>0;
end;
TStringStream は忘れられがちですが、非常に便利なツールです。pChars などをいじるよりも簡単で安全です。
複数の検索の場合は、pos、substring などを使用して ackwardly ループするか、RegEx を使用します。
このコードは Delphi XE で正常に動作しますが、TStringStream は非常に古いため、Unicode に準拠しているかどうかは不明です。
(例は漏れやすいです - 簡潔にするためにファイナライズコードを省略しました)
于 2013-04-12T07:07:01.827 に答える