Delphi初心者のための寺子屋
at TECH
61:デフォルトの名無しさん
05/12/06 00:46:30
>>59
惜しい。あと一歩。78点くらい。
たぶん結果は正しい。冗長なのが減点の原因。
AnsiStrPos は二バイト文字をサポートしていますので、検索の先頭を間違わなければStrByteType による確認は不要です。
それから、見つかったら、PStr は検索文字列の長さ分だけ Inc() してから再度検索します。
repeat
PStr:=AnsiStrPos(PStr, sword);
if (PStr<>nil) then
begin
Inc(cnt);
Inc(PStr, Length(sword));
end;
until PStr=nil;
このようにすると検索文字列が 「Delphi」であっても「デルファイ」であっても問題なく検索できます。
>>59 の回答は検索文字列の最初が一バイト文字であることを仮定しているので正しくないです。
しかし、かなりな進歩で驚いています。
次のお題は、何回現れるかの他に、その位置も返すような関数をつくってください。具体的には、RichEdit に
同様にテキストを読み込んで、ボタンを押すと Delphi の部分が赤い文字列になるようにします。
赤文字にする方法、位置情報を返すための配列の定義の仕方など、分からないことがあったら個別に質問してください。
次ページ続きを表示1を表示最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5231日前に更新/190 KB
担当:undef