FIND 基本コマンド

FIND 基本コマンドは、編集中またはブラウズ中のデータにおける文字ストリング (またはフィールド値) の 次のオカレンス、最初のオカレンス、または前のオカレンスを検出し、表示します。

ストリングのオカレンスが検出されると、FM/IMS はそのストリングの先頭にカーソルを合わせます。必要に応じて、データがスクロールされ、ストリングがビュー内に取り込まれます。表示されるページ上のストリングのオカレンスはすべて強調表示されます。

ビューで定義された出力形式を使用して表示される日時フィールドについては、FM/IMS は、表示された値から、FIND コマンドで指定されたストリングを検索します。

ビューを使用する場合は、SHOW SUP コマンドの設定値が検索されるセグメントに影響します。SHOW SUP OFF を用いると、現行セグメント・タイプおよびレイアウトに一致するセグメントのみが検索されます。SHOW SUP ON を用いると、検索は現行セグメント・タイプおよびレイアウトに限定されません。

同じパラメーターを指定した FIND を繰り返すには、「RFind」機能キー (F5) を押すか、 あるいは RFIND 基本コマンドを入力します。

FIND * と入力すると、同じストリング引数を使用して FIND が繰り返されますが、 他のすべてのパラメーターはデフォルト値に設定されます。必要であれば、FIND * PREFIX のように、特定のパラメーター値を指定することができます。

FX コマンドは、「Extended Command Entry (拡張コマンド入力)」パネルを表示します。 このパネルでは、コマンド行に収まらない可能性のある長い引数も入力することができます。

構文


1 Find
1 FX
1 /
2? SEGment(segment-name)
2? GET(n)
2 
3.1! SCOPE
3.1 Db
3.1 Rec
3.1 DEPendent
3.1 *
3.1 string
3.1! NEXT
3.1 ALL
3.1 FIRST
3.1 PREV
3.1! CHARs
3.1 PREfix
3.1 SUFfix
3.1 WORD
1  %column range
1  %field list or range
column range (CHAR, HEX, and LHEX formats only)

1 col1 ?col2
field list or range (SNGL or TABL display format)

1 ! #ALL
2.1 (?+ , #field)
1 (?+ , #field_1 - #field_2)

パラメーターは、任意の順序で指定できます。

segment-name
SEGMENT パラメーターを指定すると、検索はセグメント・タイプ segment-name の オカレンスに制限されます。このパラメーターは、SHOW SUP がオンの場合、またはビューを使用しない場合にのみ許可されます。
GET(n)
検索するセグメントの数を n に制限します。
SCOPE
検索範囲は現行の有効範囲です。
DB
データベース全体を検索します。
REC
検索は現行のデータベース・レコードに制限されます。
DEPENDENT
検索は現行セグメントの従属セグメントに制限されます。このパラメーターは、SHOW SUP がオンの場合、またはビューを使用しない場合にのみ許可されます。
* (アスタリスク)
検索ストリングとして、直前の FIND コマンドに指定した検索ストリングを使用します。
string
検索中のストリング。ストリングは以下のいずれかが可能です。
  • FX (Find Extended) が使用されない場合は 50 文字の以下の 長さ、FX (Find Extended) が使用された場合は 100 文字以下の長さ。
  • 空のストリング (指定しない)。直前の FIND または CHANGE コマンドに指定した 検索ストリングは、検索ストリングとして使用されます。
    注: 検索ストリングの指定のない FIND ALL は、RESET FIND と同じ機能に なりますが、直前の FIND または CHANGE コマンドで強調表示されてもそれをオフにします。
  • 引用符で開始または終了せず、ブランクまたはコンマを含まない文字ストリング。ストリングの大/小文字は無視されます。同一文字の英大文字表記と小文字表記は一致します。例えば、MixedMIXED と一致します。
  • 一重引用符で囲まれた文字ストリング。このストリングには、ブランクとコンマを入れることができます。ストリングの大/小文字は無視されます。
  • 「C」と、その後に引用符で囲まれた文字ストリング (C'Frog')、または、引用符で囲まれた文字ストリングと、その後に「C」('Frog'C)。このストリングには、ブランクとコンマを入れることができます。ストリングは (大文字/小文字も含めて) 完全に一致しなければなりません。
  • P が前または後に付いている単一引用符または二重引用符で囲まれた、文字そのものではなく検索対象のストリングのタイプを表すピクチャー・ストリング。それ自体を表すブランク、英字、および数字、あるいは、それぞれ文字のクラスを表す下記の任意の特殊文字を含めることができます。
    =
    任意の文字。
    @
    英字。
    #
    数字。
    $
    特殊文字。
    & notsym;
    非ブランク文字。
    .
    無効文字。
    -
    非数値文字。
    <
    小文字英字。
    >
    大文字英字。

    FIND コマンドで使用されるピクチャー・ストリングの例:

    find p'.' 73 80
    73 桁目から 80 桁目の無効文字を検索します。
    find p'###'
    3 桁の数字 (例えば、101 は該当しますが、99 は該当しません) を検索します。
    find '@1'p 1
    1 桁目のラベル a1、b1、c1 などを検索します。
    find p'<'
    小文字英字を検索します。
    find p'¬' 72
    72 桁目の非ブランク文字を検索します。

    この表記が使用される場合、数字、ビット、およびユニコードのフィールド (SNGL および TABL 表示形式) は、検索処理から除外されます。

  • 「X」と、一重引用符で囲まれた 16 進ストリング (X'C1C2')。
  • 数値 (SNGL または TABL 表示形式のみ)。string の代数値は数値フィールドの代数値と一致する必要があります。string および数値フィールドの長さ (桁数) による影響はありません。同様に、数値フィールドのデータ・タイプも意味がありません。例えば、ストリング 123 は、00123 が入っているパック 10 進数フィールド または 1.230E+02 が入っている浮動小数点フィールドと一致します。string 内の符号なしの値は正と見なされます。
NEXT
FIND コマンドは、ストリング string の次のオカレンスを検索します。 検索範囲は、カーソル位置 (カーソルがディスプレイのデータ部分内にある場合)、あるいは 表示されたページの先頭 (カーソルがディスプレイのデータ部分の外側にある場合) から 始まる範囲です。

string が検索範囲の最後までに検出されなかった場合、あるいはカーソル位置が検索範囲の最後のセグメントの後にあった場合、FM/IMS は検索範囲の終わりに到達したことを示すメッセージを表示し、検索前に表示されていたページを再表示します。検索範囲の先頭から検索を再開するには、RFIND (F5) 基本コマンドを使用します。

FIRST
FIND コマンドは、検索範囲の最初のセグメントの先頭から始まる検索範囲 で、ストリング string の最初のオカレンスを検索します。

string が検索範囲で検出されなかった場合、FM/IMS はストリングが見つからなかったことを示すメッセージを表示し、検索前に表示されていたページを再表示します。

ALL
FIND コマンドは、検索範囲の最初のセグメントの先頭から始まり、検索範囲の終わりまで続く検索範囲 で、ストリング string のすべてのオカレンスを検索します。

string が 1 回以上検出された場合は、FM/IMS は最初のオカレンスの先頭にカーソルを合わせ、そのストリングが検出された回数を示すメッセージを表示します。

string が検索範囲で検出されなかった場合、FM/IMS はストリングが見つからなかったことを示すメッセージを表示し、検索前に表示されていたページを再表示します。

PREV
FIND コマンドは、ストリング string の前のオカレンスを検索します。 検索範囲は、カーソル位置 (カーソルがディスプレイのデータ部分内にある場合)、あるいは 表示される最初のセグメントの前のセグメントの終わり (カーソルがディスプレイのデータ部分の外側にある場合) から始まる範囲です。

検索範囲の先頭がスライディング・ウィンドウの中にある場合は、FIND コマンドは検索範囲の先頭 まで検索します。検索範囲の先頭がスライディング・ウィンドウの中にない場合は、FIND コマンドはウィンドウの先頭 まで検索するだけです。

注: 検索範囲の先頭またはウィンドウの先頭に到達した場合、RFIND (F5) コマンド は検索範囲の最後から検索を再開することはありません。
CHARS
データ内の任意の場所で、その検索ストリングに突き合わせます。
PREFIX
データ内の接頭部として出現する場所で、その検索ストリングに突き合わせます。接頭部にするには、一致したテキストの前に非英数字が付くか、あるいは一致したテキストが行またはフィールドの先頭である必要があり、その後に英数字が続く必要があります。
SUFFIX
データ内の接尾部として出現する場所で、その検索ストリングに突き合わせます。接尾部にするには、一致したテキストの前に英数字が付く必要があり、後に非英数字が続くか、一致したテキストが行またはフィールドの終端である必要があります。
WORD
データ内のワードとして出現する場所で、その検索ストリングに突き合わせます。ワードにするには、一致したテキストの前に非英数字が付くか、あるいは一致したテキストが行またはフィールドの先頭である必要があり、その後に非英数字が続くか、あるいは一致したテキストが行またはフィールドの終端である必要があります。
col1
検索の開始位置。col2 を指定せずに col1 を指定した場合、string が検出されるためには開始位置が col1 である必要があります。col1 と col2 の両方を指定した場合には、string が指定した桁の範囲内に完全に入っていることが必要です。
注:
  1. データが CHAR、HEX、または LHEX 形式のときにのみ桁の範囲を指定できます。桁の範囲は、データが TABL または SNGL 形式を使用して形式設定されているときには指定できません。
  2. 桁の範囲を指定して、データが SNGL または TABL 形式で表示されると、検索がデータの発生順に実行されます (これはフィールドの表示順ではないことがあります)。数値フィールド値はこのタイプの検索では考慮されません。

桁範囲を指定すると、ストリング比較が実行されます。これは数値フィールドに対しても実行されます。

col2
検索の終了位置を示します。
注: col2 がセグメント・サイズより大きい場合には、セグメント・サイズが使用されます。
#ALL
各フィールドが、テンプレート属性に従って検索されます。
#field
レイアウトにおけるフィールドのフィールド参照番号。これは、TABL および SNGL 形式に適用されます。

複数のフィールド参照を指定する場合は、フィールド参照を括弧で囲む (オプションとしてコンマで区切る) か、あるいはコンマで区切る必要がありますが、スペースを入れることはできません。例えば、(#17 #22)、(#17, #22)、および #17,#22 は、有効なフィールド参照の指定です。

英数字フィールドの場合に、指定のフィールドのいずれかにストリングが完全に含まれていれば、そのストリングが検出されます。例: FIND ALL xxx #5,#6 では、フィールド参照が #5 および #6 のフィールドのいずれかの中に「xxx」の含まれている現行の定様式タイプのすべてのセグメントが検出されます。

数値フィールドの場合、数値フィールドのいずれかの値が、 ストリングで指定する値に等しいときに検出されます。

例えば、FIND ALL 123 #8,#9 では、現在形式設定されている (数値または文字) タイプの、以下のすべてのセグメントが検出されます。
  • フィールド参照が #8 および #9 の数値フィールドのいずれかに値 123 が含まれている
  • フィールド参照が #8 および #9 の文字フィールドのいずれかにストリング 123 が含まれている
#field_1
フィールドの範囲の最初のフィールド参照。添え字にすることはできません。#field_1 フィールド参照値が最低の表示フィールド参照値より小さい場合は、最低の表示フィールド参照値が使用されます。
#field_2
フィールドの範囲の最後のフィールド参照。添え字にすることはできません。#field_2 フィールド参照値が最高の表示フィールド参照値より大きい場合は、最高の表示フィールド参照値が使用されます。

#field_1#field_2 のフィールド参照値はハイフン (-) によって区別する必要があります。ハイフンとフィールド参照値の間にスペースを使用することができます。

#field_1#field_2 より大きい値の場合、検索処理ではオペランドが逆になります。

1. 連続する入力行を示す FIND コマンドの「Extended Command Entry (拡張コマンド入力)」ポップアップ・パネル
Process   Options   Utilities   Help
  ──────────────────────────────────────────────────────────────────────────────
FM/IMS                        Edit : IMS Database DJ1E
            Autosave OFF SHOW SUP ON  Scope ALL    Col 1          Format CHAR
   ┌───────────────────── Extended Command Entry ──────────────────────┐ DATE
   │                                                                   │
   │ Complete typing the FIND command and press Enter.                 │
   │                                                                   │
 0 │ FIND    ===> 'THE EXTENDED FIND CAN BE USED TO SEARCH FOR STRIN   │
 0 │         ===>  GS UP TO 100 CHAR LONG' PREV_____________________   │
 0 │         ===>  _________________________________________________   │
 0 │         ===>  _________________________________________________   │
 0 │         ===>  _________________________________________________   │
 0 │                                                                   │
 0 │                                                                   │
 0 │  F1=Help    F2=Split   F3=Exit    F9=Swap   F12=Cancel            │
 0 └───────────────────────────────────────────────────────────────────┘ 9/2020
    ___  2    LINKSUB   O'CONNOR
    ___  2    LINKSUB   SAMSON
    ___  2    LINKSUB   SOUTH FREMANTLE
    ___  2    LINKSUB   WHITE GUM VALLEY
    ___ 1     SHIRE     KALGOORLIE          W60500012.`....................o.
    ___  2    SHIRENP   .......b...
    ___  2    LINKSUB   HANNANS
    ___  2    LINKSUB   KALGOORLIE
    ___ 1     SHIRE     MOUNT MAGNET        070400399.............. ..... ...
    ___  2    SHIRENP   ...........
    ___  2    LINKSUB   MOUNT MAGNET
    ___  2    LINKSUB   MOUNT MAGNET SHIRE
 Command ===> fx___________________________________________________ Scroll CSR
  F1=Help      F2=Format    F3=Exit      F4=CRetriev  F5=RFind     F6=RChange
  F7=Up        F8=Down      F9=Swap     F10=Left     F11=Right    F12=Cancel

MAXGN オプションがご使用のシステムでゼロ以外の値に設定されていた場合は、FM/IMS は検索中に読み取られたセグメント数をカウントし、その数が MAXGN で指定された値に等しいと「Search Interrupt (検索割り込み)」ウィンドウを表示します。「Search Interrupt (検索割り込み)」ウィンドウでは、検索を継続するか、中止するかの 選択肢が与えられます。検索の継続を選択し、さらに MAXGN セグメントが読み取られても検索が終了しない場合は、 「Search Interrupt (検索割り込み)」ウィンドウが再表示され、もう一度、検索を継続するか 中止するかの選択肢が与えられます。

「Search Interrupt (検索割り込み)」ウィンドウには 2 つの種類があります。 「Search Interrupt (検索割り込み)」ウィンドウ - 検索ストリングが検出されない場合 は、検索引数のインスタンスが検出されなかった場合に表示されるウィンドウです。次の 3 つのオプションがあります。

  • 検索を継続する。
  • 検索を中止し、検索前の位置からのデータを表示する。
  • 検索を中止し、現在の検索位置からのデータを表示する。
2. 「Search Interrupt (検索割り込み)」ウィンドウ - 検索ストリングが検出されない場合
┌───────────────────── Search Interrupt ──────────────────────┐
│ Command ===>                                                │
│                                                             │
│                                                             │
│                                                             │
│ 100 segments searched.                                      │
│ Search argument xcv found 0 times.                          │
│                                                             │
│ To continue the search, press the ENTER key.                │
│                                                             │
│ To discontinue the search and display data from the         │
│ position prior to the search, enter the CANCEL command.     │
│                                                             │
│ To discontinue the search and display data from the current │
│ search position, enter the EXIT command.                    │
│                                                             │
│                                                             │
│                                                             │
│                                                             │
│                                                             │
│                                                             │
│  F1=Help        F2=Split       F3=Exit        F7=Backward   │
│  F8=Forward     F9=Swap       F12=Cancel                    │
└─────────────────────────────────────────────────────────────┘

FIND...ALL 要求の場合、検索引数の 1 つのインスタンスが検出されても、検索は終了しません。

「Search Interrupt (検索割り込み)」ウィンドウ - 検索ストリングが検出された場合 は、検索引数のインスタンスがすでに検出されている場合に表示されるウィンドウです。検索引数のインスタンスが既に検出されている場合に検索を中止する選択を行った 場合は、FM/IMS は、検索を完了するまで実行したときのように、検索引数の最初のインスタンス の位置からデータを表示します。

3. 「Search Interrupt (検索割り込み)」ウィンドウ - 検索ストリングが検出された場合
┌───────────────────── Search Interrupt ──────────────────────┐
│ Command ===>                                                │
│                                                             │
│                                                             │
│                                                             │
│ 100 segments searched.                                      │
│ Search argument wa found 6 times.                           │
│                                                             │
│ To continue the search, press the ENTER key.                │
│                                                             │
│ To discontinue the search and return to the data display,   │
│ enter the EXIT or the CANCEL command.                       │
│ (The first search argument found will be displayed at the   │
│ top of the screen.)                                         │
│                                                             │
│                                                             │
│                                                             │
│                                                             │
│                                                             │
│                                                             │
│                                                             │
│  F1=Help        F2=Split       F3=Exit        F7=Backward   │
│  F8=Forward     F9=Swap       F12=Cancel                    │
└─────────────────────────────────────────────────────────────┘

使用箇所

関連作業および例

FIND コマンドは、コマンドの省略形 (例: F または FI) を使用するか、またはスラッシュ (「/」) 文字を入力することにより指定することができます。

連続する入力行を示す FIND コマンドの「Extended Command Entry (拡張コマンド入力)」ポップアップ・パネル は、FIND コマンドの「Extended Command Entry (拡張コマンド入力)」ポップアップ・パネルを示しています。この例では、FM/IMS は長いストリングの前のオカレンスを検索します。