2014-02-06 3 views
1

foreach 루프를 실행하는 데 문제가 있습니다. 루프는 오류없이 실행되지만 출력을 제공하지 않습니다. 누군가가 그들이 어떻게 될지 생각하는지 말해 줄 수 있습니까? 미리 많은 감사드립니다! 여기 foreach 루프가 실행 중이지만 결과가 나타나지 않습니다.

코드입니다 :

cd "O:\RESEARCH\ikhilko\Subway Big Data project" 
local datafiles : dir . files "*.txt" 

foreach file in `datafiles' { 
insheet using `file', 
clear 
insheet using `file', 
drop v9-v43 
save date1, replace 
} 

UPDATE :

흥미롭게도, 코드는 그냥, 오히려 수도 있었죠 파일에서 그 일을보다, 명령 라인에 어떤 생각을 입력 할 때 실행되는 것을 거기에 있을지도 몰라?

+0

로컬 '데이터 파일'의 내용을 '표시'하여 루프에 들어가는 것을 확인합니다. 이것을 할 때 큰 따옴표로 지역을 둘러 쌉니다 ('help quotes' 참조). 'insheet'를 두 번하는 이유는 무엇입니까? 왜'','''''''''''''''''''''''''''''''''''''''''''''''''''''''''옵션 –

+0

지역 정보가 비어있는 것 같습니다. (귀하의 게시물에 정확한 출력을 복사해야합니다. 귀하의 컴퓨터/디렉토리/파일이 없습니다.) –

+0

Roberto 감사합니다. 로컬은 다음과 같습니다. 'datafiles '를 표시하십시오. turnstile_100724.txtturnstile_100626.txtturnstile_100703.txtturnstile_100710.txtturnstile_100717.txt –

답변

1

디버깅을위한 몇 가지 코드입니다. 루프에 무슨 일이 일어나고 있는지 볼 수있는 지역 datafilesdisplay 내용 :

local datafiles : dir . files "*.txt" 
display `"`datafiles'"' 

local wordx : word 1 of `datafiles' 
display `"`wordx'"' 

foreach file in `datafiles' { 
    display "`file'" 
} 

(코멘트 섹션에서 잘 포맷하지 않는 코드는.)

2

local 매크로 정확하게 그 것을 주목하는 것이 중요하다 즉, 정의되고 로컬에서만 볼 수 있습니다.

는 로컬

같은 대화 형 세션

또는

같은 프로그램

또는

같은이 제기합니까 (또는 할 파일 편집기의 내용)

내에서 의미

또는

소재지 인 선택에 의해 실행 된 DO 파일 (또는 ...)의 동일한 부분, 여기 당신을 무는 것 같다. 한 곳에서 정의 된 로컬 매크로는 다른 곳에서 볼 수 없습니다. 매크로가 표시되지 않으면 로컬 매크로 참조가 누락 됨 (즉, 빈 문자열)으로 평가됩니다.

+0

감사합니다. Nick, 그게 내가 누락 된 부분입니다! didnt는 그것에 관해 논리를 알고있다. 그러나 단지 읽었다. 그리고 그것은 당신이 말했던 정확하게 달리기 다. 매우 감사. –

관련 문제