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 (拡張コマンド入力)」パネルを表示します。 このパネルでは、コマンド行に収まらない可能性のある長い引数も入力することができます。
構文
パラメーターは、任意の順序で指定できます。
- segment-name
- SEGMENT パラメーターを指定すると、検索はセグメント・タイプ segment-name の オカレンスに制限されます。このパラメーターは、SHOW SUP がオンの場合、またはビューを使用しない場合にのみ許可されます。
- GET(n)
- 検索するセグメントの数を n に制限します。
- SCOPE
- 検索範囲は現行の有効範囲です。
- DB
- データベース全体を検索します。
- REC
- 検索は現行のデータベース・レコードに制限されます。
- DEPENDENT
- 検索は現行セグメントの従属セグメントに制限されます。このパラメーターは、SHOW SUP がオンの場合、またはビューを使用しない場合にのみ許可されます。
- * (アスタリスク)
- 検索ストリングとして、直前の FIND コマンドに指定した検索ストリングを使用します。
- ストリング
- 検索中のストリング。ストリングは以下のいずれかが可能です。
- FX (Find Extended) が使用されない場合は 50 文字の以下の 長さ、FX (Find Extended) が使用された場合は 100 文字以下の長さ。
- 空のストリング (指定しない)。直前の FIND または CHANGE コマンドに指定した 検索ストリングは、検索ストリングとして使用されます。注:検索ストリングの指定のない FIND ALL は、RESET FIND と同じ機能に なりますが、直前の FIND または CHANGE コマンドで強調表示されてもそれをオフにします。
- 引用符で開始または終了せず、ブランクまたはコンマを含まない文字ストリング。ストリングの大/小文字は無視されます。同一文字の英大文字表記と小文字表記は一致します。例えば、
MixedはMIXEDと一致します。 - 一重引用符で囲まれた文字ストリング。このストリングには、ブランクとコンマを入れることができます。ストリングの大/小文字は無視されます。
- 「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')。 - 文字そのものではなくストリングのパターンとして指定するには、正規表現ストリングの前または後に R を追加し、単一引用符または二重引用符で囲みます。このストリングは、C ランタイム・ライブラリーでサポートされいる、C ランタイム・ライブラリーの regcomp 関数で許可されている形式に準拠している必要があり、かつ C ランタイム・ライブラリーが使用可能である必要があります。大/小文字を区別した検索を行うには、RC を使用します。正規表現の例は次のとおりです。
- 列 1 ~ 10 内の「cat」または「hat」
-
r'[ch]at' 1 10 - 「payer」または「payee」
-
r'pay(er!ee)' - 「band」または「bald」、ただし「bad」を除く
-
'ba.d'r - 「feed」または「weed」、ただし「fed」または「wed」を除く
-
r'[fw]e{2}d' - 「The」または「She」、ただし「the」または「she」を除く
-
rc'[TS]he'
この SETLOCALE 関数は、regcomp 関数が正規表現をコンパイルする際に使用するロケールを定義するために使用されます。SETLOCALE 関数に使用されるロケールは、端末 CCSID に基づいています。ロケールは、次の端末 CCSID でサポートされています。00037 00871 01123 01156 00273 00875 01140 01157 00277 00924 01141 01158 00278 00930 01142 01160 00280 00933 01143 01165 00284 00935 01144 01364 00285 00937 01145 01371 00290 00939 01146 01388 00297 01025 01147 01390 00424 01026 01148 01399 00425 01027 01149 04971 00500 01047 01153 05123 00838 01112 01154 08482 00870 01122 01155 12712別の CCSID を持つ端末を使用している場合、正規表現をコンパイルするときにデフォルトの C ロケールが使用されます。 - 数値 (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 が指定した桁の範囲内に完全に入っていることが必要です。注:
- データが CHAR、HEX、または LHEX 形式のときにのみ桁の範囲を指定できます。桁の範囲は、データが TABL または SNGL 形式を使用して形式設定されているときには指定できません。
- 桁の範囲を指定して、データが 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 より大きい値の場合、検索処理ではオペランドが逆になります。
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=CancelMAXGN オプションがご使用のシステムでゼロ以外の値に設定されていた場合は、FM/IMS は検索中に読み取られたセグメント数をカウントし、その数が MAXGN で指定された値に等しいと「Search Interrupt (検索割り込み)」ウィンドウを表示します。「Search Interrupt (検索割り込み)」ウィンドウでは、検索を継続するか、中止するかの 選択肢が与えられます。検索の継続を選択し、さらに MAXGN セグメントが読み取られても検索が終了しない場合は、 「Search Interrupt (検索割り込み)」ウィンドウが再表示され、もう一度、検索を継続するか 中止するかの選択肢が与えられます。
「Search Interrupt (検索割り込み)」ウィンドウには 2 つの種類があります。 「Search Interrupt (検索割り込み)」ウィンドウ - 検索ストリングが検出されない場合 は、検索引数のインスタンスが検出されなかった場合に表示されるウィンドウです。次の 3 つのオプションがあります。
- 検索を継続する。
- 検索を中止し、検索前の位置からのデータを表示する。
- 検索を中止し、現在の検索位置からのデータを表示する。
┌───────────────────── 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 は、検索を完了するまで実行したときのように、検索引数の最初のインスタンス の位置からデータを表示します。
┌───────────────────── 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 は長いストリングの前のオカレンスを検索します。