. 가장 간단하고 간단한 오류는 fo
파일을 열지 않은 것입니다. 즉 다른 곳에 당신이 여기에 표시되지 않은 코드에서 수행하지 않는 한, 당신은 당신의 foreach
루프 전에
set fo [open test.txt w]
같은 것을 추가해야합니다.
data1
data2
data3
하지만이 콘텐츠 작성을 위해 아마 당신이 의도 : 여기
This is Data1 Value
This is Data2 Value
This is Data3 Value
를 오류입니다
두 번째 문제는 코드가 파일에이 내용을 작성하는 것입니다 것입니다 더 미묘한. 루프가하는 일은 의 각 변수의 이름으로 different_content
을 설정하는 것이지만 값은입니다. 본질적으로 변수 different_content
을 이중 참조 해제해야합니다. 변수 이름의 시작 부분에 $
을 추가하면 한 수준의 역 참조가 부여됩니다. 불행히도 Tcl을 사용하면 다른 $
을 앞으로 치고 두 번째 레벨을 얻을 수 없습니다. 그러나 set
명령을 사용할 수 있습니다. 결국, $
은 set
에 대한 syntacic 설탕입니다 : $foo
은 [set foo]
와 동일합니다.
puts $fo [set $different_content]
을 그래서, 모두 함께 넣어 : 따라서, 나는 다음과 같이 루프의 몸을 다시 작성해야 생각
set data1 "This is Data1 Value\n"
set data2 "This is Data2 Value"
set data3 "\nThis is Data3 Value\n"
set fo [open test.txt w]
foreach different_content {data1 data2 data3} {
puts $fo [set $different_content]
}
close $fo
내 코드 사랑하는 시저의 testforeach {} { 설정 파일 이름 /tmp/indrajeet_DBTEST_dbmode.sql 설정 데이터 1을 참조 세트 "이것은 DATA1 값 \ n은" data2 "이것은 data2 값입니다." open ('/ tmp/indrajeet_DBTEST_dbmode.SQL ') foreach는 different_content {데이터 1의 데이터 2} FO 가까운 $} testforeach { 에 $ different_content fo를 $를두고}하지만 사랑하는 작동하지 않습니다, 제발 도와주세요. –
참고 : 여기서 특정 위치, 즉 임시 폴더 내에 파일을 쓰고 싶습니다. –
open 구문이 잘못되었습니다. 이것은 Tcl C/javascript/Java – slebetman