2014-03-27 3 views
0

일부 arguments.now에 대해 일부 값을 생성하는 tcl 코드가 있는데이 값을 저장하고 동일한 프로그램이지만 다른 arguments.h와 함께 사용하려고합니다. 수행 할 수 있습니까?tcl의 저장소?

+0

귀하의 질문은 명확하지 않습니다. 당신은 정교 할 수 있습니까? – Jerry

+0

처음으로 생성 된 변수의 값을 사용하고 싶습니다. 두 번째 실행을 수행합니다. – Pac

+0

파일에 값을 쓰고 두 번째 실행에서 파일을 읽을 수 있습니까? – Jerry

답변

1

나중에 에 대한 값을 전체 프로그램의 한 실행에 저장하려면 변수에 넣으십시오.

set theVariable "the value is foo bar" 

나중에 프로그램의 또 다른 실행에 대한 값을 저장하려면, 당신은 아마 파일로 작성해야합니다. 가장 간단한 방법은 다음과 같이이다 :

# To store: 
set f [open theSettingsFile.dat w] 
puts $f $theVariable 
close $f 
# To load: 
set f [open theSettingsFile.dat] 
set theVariable [gets $f] 
close $f 

은 Tcl은 티클되는, 당신은 또한 스크립트로 저장할 수 있습니다 당신이 할 수있는 source : 복잡한 들어

# To store: 
set f [open theSettingsFile.tcl] 
puts $f [list set theVariable $theVariable] 
close $f 
# To load: 
source theSettingsFile.tcl 

SQLite와 같은 데이터베이스를 사용하는 것이 좋습니다.

# To store: 
package require sqlite3 
sqlite3 db theSettings.db 
db eval {CREATE TABLE IF NOT EXISTS settings (key TEXT, value TEXT)} 
# Note; the below is SQL-injection safe  
db eval {INSERT INTO settings (key, value) VALUES ('theVariable',$theVariable)} 
db close 
# To load: 
package require sqlite3 
sqlite3 db theSettings.db 
db eval {SELECT value FROM settings WHERE key = 'theVariable'} { 
    set theVariable $value 
} 
db close 

그러나 그것은 하나의 간단한 문자열을 저장하기위한 대규모 과잉이다.