Delphi初心者のための寺子屋 at TECH
[2ch|▼Menu]
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