參考手冊

DTWF_SEARCH


AIX HP-UX Linux OS/2 OS/390 OS/400 PTX SUN Win NT
X X X X X X X X X

目的

搜尋文字檔的字串,將結果傳回 Net.Data 表格。

格式

@DTWF_SEARCH(filename, transform, delimiter, table, searchFor, retry, linesToSearch, startline)

@DTWF_SEARCH(filename, transform, delimiter, table, searchFor, retry, linesToSearch)

@DTWF_SEARCH(filename, transform, delimiter, table, searchFor, retry)

@DTWF_SEARCH(filename, transform, delimiter, table, searchFor)

參數

表 184. DTWF_SEARCH 參數
資料類型 參數 使用 說明
字串 filename INOUT 所要搜尋之檔案的名稱。 呼叫順利完成時, 這個參數會傳回全部完整的檔名。
字串 transform IN 檔案的格式:
  • ASCIITEXT - 將表格寫入檔案,各直欄值之間放入換行字,並忽略 delimiter 參數。
  • DELIMITED - 使用指定在 delimiter 參數中的區隔字元來將表格寫入檔案中。
檔案中的換行字元指出 ASCIITEXT 與 DELIMITED 轉換的 Net.Data 巨集表格的橫列結尾。
字串 delimiter IN 一個指示值終止的字元字串。這個參數是區分大小寫 的。忽略,如果 transform 是 ASCIITEXT。
表格 table OUT 一個置放結果的表格變數。 傳回的三個直欄︰
  • 找到有相符者的行
  • 找到有相符者的欄位 (ASCIITEXT 轉換,此值恆為 1)
  • 此欄位值包含搜尋字串

對非 OS/400 使用者而言:FFI 表格中橫列的最大長度為 16383 個字元。 此限制包括 Net.Data 巨集表格中每一直欄的空值字元。

字串 searchFor IN 所要搜尋的字元字串。
整數 retry IN 如果檔案無法立刻搜尋的話,所要重試 的次數。 預設值是不重試。
整數 linesToSearch INOUT 可搜尋的檔案行數。0 值表示搜尋到檔案中的所有行數,或直到表格已滿; 此為預設值。在成功完成的情況下,會返回在結果表格中的列數。
整數 起始行 IN 在檔案中開始進行搜尋的行。預設值是 1,其將從第一個記錄開始搜尋。

回覆碼

表 185. DTWF_SEARCH 回覆碼
回覆碼 說明
-1001 伺服器無法處理 Net.Data 的配置記憶體要求。
1001 輸入參數包含 NULL 值。
1002 輸入參數包含的字串有空字元結尾。
1003 函數呼叫上傳遞的參數數目不正確。
1004 函數呼叫上傳遞的參數必須是 Net.Data 巨集表變數,但卻是不同的變數類型。
1005 函數呼叫上傳遞的參數必須是字串變數,但卻是不同的變數類型。
1006 文字字串傳遞給函數呼叫中的參數, 但此參數必須是輸出參數。
1007 參數包含的值無效。
1010 資料會被寫入表格中,直到表格沒有空位為止,剩餘資料則捨棄。
2000 純本文檔介面內建函數找不到指定的檔案。
2003 純本文檔介面內建函數無法將一列資料讀入表格變數中, 因為橫列的位元組數超出支援的最大位元組數。
2004 純本文檔介面內建函數試圖尋找檔案, 但發現 FFI_PATH 架構檔變數中有一個路徑的長度超過支援的最大位元組數 4095。
2005 呼叫系統功能失敗。
2006 純本文檔介面內建函數無法存取指定的檔案, 因為檔案正被此處理或另一個處理使用,無法在指定模式之下共用。

用法注意事項

  1. 因 DTWF_SEARCH 傳回的表格具有三欄。前兩欄含有找到相符字元的橫列與直欄號碼; 最後一直欄含有的直欄值具有 SearchFor 參數中所指定的字元。 例如,如果檔案的第 4 列含有第 3 欄的相符字元, 則傳回的表格將具有在第一欄具有號碼 4 一列, 來指出檔案的橫列的出處;它在第 2 欄具有號碼 3, 指出檔案的哪一欄具有相符字元;它在第 3 欄中具有完整的直欄值
  2. SearchFor 參數無法包括 delimiter 參數的內容

範例

範例 1

%DEFINE {
   myFile = "c:/private/myfile"
   myTable = %TABLE
  myWait = "1000"
  mySearch = "0123456789abcdef"
@DTWF_SEARCH(myFile, "DELIMITED", ";",
               myTable, mySearch, myWait)

範例 2

%DEFINE {
   myFile = "c:/private/myfile"
   myTable = %TABLE
  mySearch = "answer:"
  myWait = "0"
  myRows = "0"
  myStartrow = "1"
%}
@DTWF_SEARCH(myFile, "DELIMITED", ";", myTable,
               mySearch, myWait, myRows, myStartrow)


[ 頁面頂端 | 前一頁 | 下一頁 | 目錄 | 索引 ]