2013-10-24 2 views
0

내 배열을 파일의 날짜로 제한 할 수있는 방법이 있습니까? 드라이브의 모든 파일을 원하지만 파일의 날짜가 마지막으로 저장된 가져 오기 datetime 인 경우에만 필요합니다. "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

는 시간과 날짜와 4로 소자 (3)을 가지고, 당신은 ...

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

    endif 
endfor 

당신이

ON 확인

SET 세기를해야 할 수도 있습니다 할 수 적절한 날짜/시간 변환을 위해

.

는 또한 ltFileTime 대신 가독성에 대한 DATETIME (년, 월, 일 등) ...

+0

최고 @DRapp를 사용할 수 있습니다. 그게 내가 필요한 것입니다. – Zornjac