您可以使用 DTWF_OPEN 與 DTWF_CLOSE 函數,鎖定純本文檔。 這些函數容許您保留檔案供 Net.Data 處理使用,因為它需要存取檔案, 以便沒有其他處理可以讀取或更新檔案。
若要鎖定檔案,請使用 DTWF_OPEN 函數。此函數確定其他應用程式無法使用檔案, 如此可避免檔案在讀取與更新之間遭人變更。
若要釋放檔案,請使用 DTWF_CLOSE 函數。此函數會從 Net.Data 處理的控制中釋放檔案, 以容許其他處理可讀取或更新檔案。
| AIX | HP-UX | OS/2 | OS/390 | OS/400 | SCO | SUN | Win NT |
| X | X | X | X | X | X | X | X |
目的
將表格的變數的目次寫入檔案尾端。
檔案的現行內容會影響使用 DTWF_APPEND 的結果,尤其是最後一橫列的最後一直欄的內容。 如果換行字元後面跟著檔案的最後一橫列的最後一直欄值,附加的資料將置於新橫列中。 否則,附加的資料將變成檔案的最後一橫列的一部份。
格式
@DTWF_APPEND(filename, transform, delimiter, table, retry, rows)
@DTWF_APPEND(filename, transform, delimiter, table, retry)
@DTWF_APPEND(filename, transform, delimiter, table)
值
| 資料類型 | 參數 | 使用 | 說明 |
|---|---|---|---|
| 字串 | filename | INOUT | 變數內容將新增至其中的檔案名稱。呼叫順利完成時, 這個參數會傳回全部完整的檔名。 |
| 字串 | transform | IN | 檔案的格式:
|
| 字串 | delimiter | IN | 一個指示值終止的字元字串。這個參數是區分大小寫 的。忽略,如果transform 是 ASCIITEXT。 |
| 表格 | table | IN | 一個從中讀取記錄的表格變數。
對非 OS/400 使用者而言:FFI 表格中橫列的最大長度為 16383 個字元。 此限制包括 Net.Data 巨集表格中每一直欄的空值字元。 |
| 整數 | retry | IN | 如果檔案無法立刻附加的話,所要重試 的次數。預設值是不重試。 |
| 整數 | rows | IN | 從 table 中所附加之最大的 列數目。 預設值 是附加所有的列。 指定 0 將附加所有的列。 |
範例
範例 1:
%DEFINE {
myFile = "c:/private/myfile"
myTable = %TABLE
%}
@DTWF_APPEND(myFile, "DELIMITED", " ;", myTable)
範例 2:
%DEFINE {
myFile = "c:/private/myfile"
myTable = %TABLE
%}
@DTWF_APPEND(myFile, "ASCIITEXT", " ;", myTable)
範例 3:
%DEFINE {
myFile = "c:/private/myfile"
myTable = %TABLE
%}
@DTWF_APPEND(myFile, "ASCIITEXT", " ;", myTable, "0", "10")
| AIX | HP-UX | OS/2 | OS/390 | OS/400 | SCO | SUN | Win NT |
| X | X | X | X | X | X | X | X |
目的
關閉由 DTWF_OPEN 所開啟的檔案。
格式
@DTWF_CLOSE(filename, retry)
@DTWF_CLOSE(filename)
值
| 資料類型 | 參數 | 使用 | 說明 |
|---|---|---|---|
| 字串 | filename | INOUT | 所要關閉之檔案的名稱。呼叫順利完成時, 這個參數會傳回全部完整的檔名。 |
| 整數 | retry | IN | 如果檔案無法立刻關閉的話,所要重試 的次數。 預設值是不重試。 |
範例
範例 1:
@DTWF_CLOSE(myFile, "5")
| AIX | HP-UX | OS/2 | OS/390 | OS/400 | SCO | SUN | Win NT |
| X | X | X | X | X | X | X | X |
目的
從檔案中刪除記錄。(並不刪除空檔案。)
格式
@DTWF_DELETE(filename, transform, delimiter, retry, rows, startrow)
@DTWF_DELETE(filename, transform, delimiter, retry, rows)
@DTWF_DELETE(filename, transform, delimiter, retry)
@DTWF_DELETE(filename, transform, delimiter)
值
| 資料類型 | 參數 | 使用 | 說明 |
|---|---|---|---|
| 字串 | filename | INOUT | 所要刪除之記錄的檔案名稱。 呼叫順利完成時, 這個參數會傳回全部完整的檔名。 |
| 字串 | transform | IN | 檔案的格式:
|
| 字串 | delimiter | IN | 一個指示值終止的字元字串。這個參數是區分大小寫 的。忽略,如果transform 是 ASCIITEXT。 |
| 整數 | retry | IN | 如果記錄無法立刻刪除的話,所要重試 的次數。 預設值是不重試。 |
| 整數 | rows | IN | 所要刪除之最大的的列數目。預設值 是刪除所有的列。 指定 0 將刪除所有的列。 |
| 整數 | startrow | INOUT | 開始刪除的列號碼。 值 1 表示從第一列開始刪除。如果這個值大於在檔案中的列號碼,則該值會被 變更為最後一個記錄並以錯誤傳回。預設值是從 1 開始。 |
範例
範例 1:
%DEFINE {
myFile = "c:/private/myfile"
myTable = %TABLE
myWait = "5000"
myRows = "2"
%}
@DTWF_DELETE(myFile, "Delimited", "|", myWait, myRows)
範例 2:
%DEFINE {
myFile = "c:/private/myfile"
myTable = %TABLE
myStart = "1"
myRows = "2"
%}
@DTWF_DELETE(myFile, "Asciitext", "|", "0", myRows, myStart)
| AIX | HP-UX | OS/2 | OS/390 | OS/400 | SCO | SUN | Win NT |
| X | X | X | X | X | X | X | X |
目的
將記錄插入檔案。
格式
@DTWF_INSERT(filename, transform, delimiter, table, retry, rows, startrow)
@DTWF_INSERT(filename, transform, delimiter, table, retry, rows)
@DTWF_INSERT(filename, transform, delimiter, table, retry)
@DTWF_INSERT(filename, transform, delimiter, table)
值
| 資料類型 | 參數 | 使用 | 說明 |
|---|---|---|---|
| 字串 | filename | INOUT | 插入記錄的檔案名稱。 呼叫順利完成時, 這個參數會傳回全部完整的檔名。 |
| 字串 | transform | IN | 檔案的格式:
|
| 字串 | delimiter | IN | 一個指示值終止的字元字串。這個參數是區分大小寫 的。忽略,如果transform 是 ASCIITEXT。 |
| 表格 | table | IN | 從該處將記錄插入表格的記錄
變數。
對非 OS/400 使用者而言:FFI 表格中橫列的最大長度為 16383 個字元。 此限制包括 Net.Data 巨集表格中每一直欄的空值字元。 |
| 整數 | retry | IN | 如果檔案無法立刻被寫入的話,所要重試 的次數。預設值是不重試。 |
| 整數 | rows | IN | 從 table 所插入之最大的 列數。 預設值 是插入所有的列。 值 0 將會插入所有的列。 |
| 整數 | startrow | INOUT | 開始插入之列的號碼。 指定 1 表示從第一列開始插入。如果這個值大於在檔案中的列號碼,則該值會被 變更為最後一個記錄並以錯誤傳回。預設值是從 1 開始。 |
範例
範例 1:
%DEFINE {
myFile = "c:/private/myfile"
myTable = %TABLE
myWait = "3000"
%}
@DTWF_INSERT(myFile, "Delimited", "|", myTable, myWait)
範例 2:
%DEFINE {
myFile = "c:/private/myfile"
myTable = %TABLE
myStart = "1"
myRows = "2"
%}
@DTWF_INSERT(myFile, "Asciitext", "|", myTable, "0", myRows, myStart)
| AIX | HP-UX | OS/2 | OS/390 | OS/400 | SCO | SUN | Win NT |
| X | X | X | X | X | X | X | X |
目的
明確地開啟一個檔案。 當檔案不存在時,應該指定檔名的絕對路徑, 且將建立檔案的目錄須符合 FFI_PATH 中指定的目錄。如果未使用絕對路徑, 將開啟現行工作目錄中的檔案。 DTWF_OPEN 會保持檔案開啟,否則 在每一個純本文檔作業後,檔案會關閉。
執行效能要訣:使用 DTWF_OPEN 來減少 檔案開啟的次數。
檔案會一直保持開啟,直到使用 DTWF_CLOSE 關閉,或 巨集處理程序終止。
格式
@DTWF_OPEN(filename, mode, retry)
@DTWF_OPEN(filename, mode)
值
| 資料類型 | 參數 | 使用 | 說明 |
|---|---|---|---|
| 字串 | filename | INOUT | 所要開啟的檔案名稱。呼叫順利完成時, 這個參數會傳回全部完整的檔名。 |
| 字串 | mode | IN | 所要求的存取類型:
|
| 整數 | retry | IN | 如果檔案無法立刻開啟的話,所要重試 的次數。 預設值是不重試。 |
範例
範例 1:
%DEFINE {
myFile = "c:/private/myfile"
myMode = "r+"
%}
@DTWF_OPEN(myFile, myMode, "1000")
| AIX | HP-UX | OS/2 | OS/390 | OS/400 | SCO | SUN | Win NT |
| X | X | X | X | X | X | X | X |
目的
從檔案中將記錄讀取至表格變數。
格式
@DTWF_READ(filename, transform, delimiter, table, retry, rows, startrow, columns)
@DTWF_READ(filename, transform, delimiter, table, retry, rows, startrow)
@DTWF_READ(filename, transform, delimiter, table, retry, rows)
@DTWF_READ(filename, transform, delimiter, table, retry)
@DTWF_READ(filename, transform, delimiter, table)
值
| 資料類型 | 參數 | 使用 | 說明 |
|---|---|---|---|
| 字串 | filename | INOUT | 將其記錄讀取至表格變數中的檔案名稱。 呼叫順利完成時, 這個參數會傳回全部完整的檔名。 |
| 字串 | transform | IN | 檔案的格式:
|
| 字串 | delimiter | IN | 一個指示值終止的字元字串。這個參數是區分大小寫 的。忽略,如果transform 是 ASCIITEXT。 |
| 表格 | table | OUT | 一個從中讀取檔案記錄的表格變數。
對非 OS/400 使用者而言:FFI 表格中橫列的最大長度為 16383 個字元。 此限制包括 Net.Data 巨集表格中每一直欄的空值字元。 |
| 整數 | retry | IN | 如果檔案無法立刻讀取的話,所要重試 的次數。 預設值是不重試。 |
| 整數 | rows | INOUT | 所要讀取至表格中之檔案記錄的最大數目 。預設值是讀取所有的記錄,或直到表格已滿。0 值表示一直讀取至檔案的尾端。 返回在結果表格中的列數。 |
| 整數 | startrow | IN | 在檔案中,要開始使用的記錄。預設值 是從第一個記錄開啟讀取。 |
| 整數 | columns | OUT | 傳回表格中的欄數。 |
範例
範例 1:
%DEFINE {
myFile = "c:/private/myfile"
myTable = %TABLE
myWait = "1000"
%}
@DTWF_READ(myFile, "DELIMITED", ";", myTable, myWait)
範例 2:
%DEFINE {
myFile = "c:/private/myfile"
myTable = %TABLE
myWait = "0"
myRows = "0"
myStartrow = "1"
myColumns = ""
%}
@DTWF_READ(myFile, "DELIMITED", ";", myTable, myWait, myRows,
myStartrow, myColumns)
範例 3:
%DEFINE {
myFile = "c:/private/myfile"
myTable = %TABLE
%}
@DTWF_READ(myFile, "ASCIITEXT", ";", myTable)
@DTW_TB_TABLE(myTable,"BORDER","")
| AIX | HP-UX | OS/2 | OS/390 | OS/400 | SCO | SUN | Win NT |
| X | X | X | X | X | X | X | X |
目的
刪除整個檔案。
格式
@DTWF_REMOVE(filename, retry)
@DTWF_REMOVE(filename)
值
| 資料類型 | 參數 | 使用 | 說明 |
|---|---|---|---|
| 字串 | filename | INOUT | 所要刪除的檔案名稱。 呼叫順利完成時, 這個參數會傳回全部完整的檔名。 |
| 整數 | retry | IN | 如果檔案無法立刻刪除的話,所要重試 的次數。 預設值是不重試。 |
範例
範例 1:
%DEFINE myFile = "c:/private/myfile" @DTWF_REMOVE(myFile)
範例 2:
%DEFINE {
myFile = "c:/private/myfile"
myWait = "2000"
%}
@DTWF_REMOVE(myFile, myWait)
| AIX | HP-UX | OS/2 | OS/390 | OS/400 | SCO | SUN | Win NT |
| X | X | X | X | X | X | X | X |
目的
將字串搜尋的結果傳回給表格變數。
格式
@DTWF_SEARCH(filename, transform, delimiter, table, searchFor, retry, rows, startrow)
@DTWF_SEARCH(filename, transform, delimiter, table, searchFor, retry, rows)
@DTWF_SEARCH(filename, transform, delimiter, table, searchFor, retry)
@DTWF_SEARCH(filename, transform, delimiter, table, searchFor)
值
| 資料類型 | 參數 | 使用 | 說明 |
|---|---|---|---|
| 字串 | filename | INOUT | 所要搜尋之檔案的名稱。 呼叫順利完成時, 這個參數會傳回全部完整的檔名。 |
| 字串 | transform | IN | 檔案的格式:
|
| 字串 | delimiter | IN | 一個指示值終止的字元字串。這個參數是區分大小寫 的。忽略,如果transform 是 ASCIITEXT。 |
| 表格 | table | OUT | 一個置放結果的表格變數。 如果轉換是 DELIMITED,會傳回三個直欄:
對非 OS/400 使用者而言:FFI 表格中橫列的最大長度為 16383 個字元。 此限制包括 Net.Data 巨集表格中每一直欄的空值字元。 |
| 字串 | searchFor | IN | 所要搜尋的字元字串。 |
| 整數 | retry | IN | 如果檔案無法立刻搜尋的話,所要重試 的次數。 預設值是不重試。 |
| 整數 | rows | INOUT | 要讀取入table 中之最大的列數。 預設值是讀取所有的列,或直到table 已滿。 指定 0 來讀取置檔案的尾端。 在 結果表格中的列數是由這個參數傳回的。 |
| 整數 | startrow | IN | 在檔案中開始進行搜尋的記錄。預設值是 1,其將從第一個記錄開始搜尋。 |
使用
範例
範例 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)
| AIX | HP-UX | OS/2 | OS/390 | OS/400 | SCO | SUN | Win NT |
| X | X | X | X | X | X | X | X |
目的
從表格變數中更新檔案的記錄。 當檔案不存在時,應該指定檔名的絕對路徑, 且將建立檔案的目錄須符合 FFI_PATH 中指定的目錄。 如果未使用絕對路徑,將開啟現行工作目錄中的檔案。
格式
@DTWF_UPDATE(filename, transform, delimiter, table, retry, rows, startrow)
@DTWF_UPDATE(filename, transform, delimiter, table, retry, rows)
@DTWF_UPDATE(filename, transform, delimiter, table, retry)
@DTWF_UPDATE(filename, transform, delimiter, table)
值
| 資料類型 | 參數 | 使用 | 說明 |
|---|---|---|---|
| 字串 | filename | INOUT | 其記錄是從表格變數來更新的檔案名稱。 呼叫順利完成時, 這個參數會傳回全部完整的檔名。 |
| 字串 | transform | IN | 檔案的格式:
|
| 字串 | delimiter | IN | 一個指示值終止的字元字串。這個參數是區分大小寫 的。忽略,如果transform 是 ASCIITEXT。 |
| 表格 | table | IN | 檔案記錄從該處開始更新的表格變數。
對非 OS/400 使用者而言:FFI 表格中橫列的最大長度為 16383 個字元。 此限制包括 Net.Data 巨集表格中每一直欄的空值字元。 |
| 整數 | retry | IN | 如果檔案無法立刻被寫入的話,所要重試 的次數。預設值是不重試。 |
| 整數 | rows | IN | 從 table 所要更新之記錄的最大 數目。 預設值 是更新所有的記錄。 0 值表示更新所有在檔案中的列 。 |
| 整數 | startrow | INOUT | 要更新的第一個檔案。預設值是 1, 其表示在檔案的開始即進行更新。如果值大於檔案中記錄的數目,則該值會 被變更為指示在檔案中最後一個記錄的號碼,並傳回錯誤。 |
範例
範例 1:
%DEFINE {
myFile = "c:/private/myfile"
myTable = %TABLE
myWait = "1500"
myRows = "2"
%}
@DTWF_UPDATE(myFile, "Delimited", "|", myTable, myWait, myRows)
範例 2:
%DEFINE {
myFile = "c:/private/myfile"
myTable = %TABLE
myStart = "1"
myRows = "2"
%}
@DTWF_UPDATE(myFile, "Asciitext", "|", myTable, "0", myRows, myStart)
| AIX | HP-UX | OS/2 | OS/390 | OS/400 | SCO | SUN | Win NT |
| X | X | X | X | X | X | X | X |
目的
將表格變數的目次寫入至檔案中。 當檔案不存在時,應該指定檔名的絕對路徑, 且將建立檔案的目錄須符合 FFI_PATH 中指定的目錄。 如果未使用絕對路徑,將開啟現行工作目錄中的檔案。
格式
@DTWF_WRITE(filename, transform, delimiter, table, retry, rows, startrow)
@DTWF_WRITE(filename, transform, delimiter, table, retry, rows)
@DTWF_WRITE(filename, transform, delimiter, table, retry)
@DTWF_WRITE(filename, transform, delimiter, table)
值
| 資料類型 | 參數 | 使用 | 說明 |
|---|---|---|---|
| 字串 | filename | INOUT | 一個寫入表格變數之記錄的檔案名稱。 呼叫順利完成時, 這個參數會傳回全部完整的檔名。 |
| 字串 | transform | IN | 檔案的格式:
|
| 字串 | delimiter | IN | 一個指示值終止的字元字串。這個參數是區分大小寫 的。忽略,如果transform 是 ASCIITEXT。 |
| 表格 | table | IN | 使用來將列匯出至檔案的表格變數。
對非 OS/400 使用者而言:FFI 表格中橫列的最大長度為 16383 個字元。 此限制包括 Net.Data 巨集表格中每一直欄的空值字元。 |
| 整數 | retry | IN | 如果檔案無法立刻被寫入的話,所要重試 的次數。預設值是不重試。 |
| 整數 | rows | IN | 所要撰寫之檔案記錄的最大數目 。 預設值是寫入整個表格。0 值表示撰寫所有至檔案尾端的記錄 。 |
| 整數 | startrow | INOUT | 開始撰寫至檔案中的記錄號碼。預設值是 1, 其表示在第一個記錄開始進行。 如果一個值位於所指定的檔案之後,檔案 的最後一列將會與錯誤一起傳回。 |
範例
範例 1:
%DEFINE {
myFile = "c:/private/myfile"
myTable = %TABLE
%}
@DTWF_WRITE(myFile, "DELIMITED", ";", myTable)
範例 2:
%DEFINE {
myFile = "c:/private/myfile"
myTable = %TABLE
%}
@DTWF_WRITE(myFile, "ASCIITEXT", ";", myTable, "5000")
範例 3:
%DEFINE {
myFile = "c:/private/myfile"
myTable = %TABLE
%}
@DTWF_WRITE(myFile, "ASCIITEXT", ";", myTable, "5000", "10", "50")