2013-10-24 46 views
0

有沒有辦法讓我限制我的數組文件的日期?我想從驅動器的所有文件,但只有當該文件的日期是>最後存儲的導入日期時間。當我在「asterisk.asterisk」上構建陣列時,它需要很長時間。有什麼想法嗎?數組條件

fsLAST = '' 
USE CMEMAILS IN 0 
SELECT CMEMAILS 
SET ORDER TO DTSTAMP && DTSTAMP 
GO BOTTOM 
fsLAST = CMEMAILS.DTSTAMP 
local array MyFiles[1,5] 
     nFilesFound = ADIR(MyFiles, ALLTRIM(cmcontrol.cpath) + '*.*') 

    for i = 1 to nFilesFound 
     SELECT cmemails 
    DO CASE 
    CASE DATETIME(YEAR(MyFiles[ i, 3]), MONTH(MyFiles[ i, 3]), DAY(MyFiles[ i, 3]), VAL(LEFT(MyFiles[ i, 4], 2)), VAL(SUBS(MyFiles[ i, 4], 4, 2)), VAL(SUBS(MyFiles[ i, 4],7,2))) > fsLAST 
      insert into cmemails (cprimary, csubject, ddate, dtime, cattribs, dtstamp) values ; 
      (generateGuid(26), MyFiles[ i, 1], MyFiles[ i, 3], MyFiles[ i, 4], MyFiles[ i, 5],DATETIME(YEAR(MyFiles[ i, 3]), MONTH(MyFiles[ i, 3]), DAY(MyFiles[ i, 3]), VAL(LEFT(MyFiles[ i, 4], 2)), VAL(SUBS(MyFiles[ i, 4], 4, 2)), VAL(SUBS(MyFiles[ i, 4],7,2)))) 
    ENDCASE 
endfor 

回答

1

因爲數組有3元素的日期和4的時候,你可以做..

for i = ... 
    ltFileTime = CTOT(DTOC(MyFiles[1,3]) + " " + MyFiles[1,4]) 
    if ltFileTime > fsLast 
    */ do your insert... 

    endif 
endfor 

你可能需要確保

SET世紀

以確保正確的日期/時間轉換。

您還可以使用ltFileTime,而不是你的DATETIME(年,月,日等)的可讀性...

+0

真棒@DRapp。這正是我需要的。 – Zornjac