본문 바로가기

Programming/TclTk18

TCL UNIX에서 작업하기 UNIX에서 작업하기 글의 기본은 UNIX를 기초로 하지만, DOS나 Macintosh 등에서도 TCL 해석기가 있기에 사용 가능 exec 명령으로 UNIX 프로그램 수행 exec 명령은 TCL 스크립트에서 UNIX 명령을 수행 set d [exec date] 수행 결과는 표준 출력으로 출력된 결과 만약 수행한 프로그램이 표준 오류 출력으로 결과를 찍거나 상태 코드 값이 0이 아닐 경우는 에러 exec 명령은 I/O redirection과 pipeline 구문을 완벽히 지원 exec 명령에서 사용할 수 있는 여러 문법 keepnewline : 결과값의 마지막에 있는 newline 문자를 없애지 않음 | : pipeline |& : 표준 에러 출력으로도 파이프라인 수행 < fileName : fileNam.. 2022. 9. 6.
TCL Eval EVAL? 어떤 변수나 명령을 해석하기 위해서는 치환을 필요로 함 고급 기능의 치환은 eval이나 subst, after, uplevel, sen 명령에 의해 수행 리스트로 명령어 조합 eval 명령은 TCL 해석기에게 또 다른 호출을 하게 만듦 명령어를 동적으로 조합하기 위해서는 eval 명령을 사용 예를 들어 다음 명령을 나중에 수행시키고 싶은 경우 puts stdout "Hello, World!" 이러한 경우에는 아래와 같이 하면 됨 set cmd {puts stdout "Hello, World!"} eval $cmd #Hello, World! 외부에 출력할 스트링이 string이라는 변수에 저장 되어 있다고 가정 eval 명령의 수행 시점에서 string 변수에 값이 없을 경우 set string.. 2022. 9. 5.
TCL 프로시져와 스코프 TCL 프로시져와 스코프 프로시져와 스코프 프로시져는 자주 사용되는 일련의 명령들을 묶어 쉽게 사용할 수 있게 함 각 프로시져는 변수에 대한 새로운 스코프를 가짐 변수의 스코프란 그 변수가 정의되는 명령의 영역을 의미 proc 명령 TCL 프로시져를 정의하는 명령 proc name params body name은 프로시져의 이름, 대소문자를 구분하며 어떤 문자도 포함할 수 있다 params는 파라미터 이름의 리스트 정의된 프로시져는 다른 TCL 명령과 똑같은 방식으로 사용 특정 값을 돌려주기 위해 return 명령을 사용할 수 있음 default로는 마지막 명령의 결과 값이 반환됨 프로시져의 파라미터 이름 리스트는 기본 값을 가질 수 있음 proc p2 {a {b 7} {c -2} } { expr $a*.. 2022. 9. 5.
TCL 순서제어 명령 순서제어 명령 루프를 위한 명령으로 while, foreach, for가 있음 조건문으로 if와 switch가 있음 에러 처리 명령으로 catch 순서를 제어하기 위한 명령으로 break, continue, return, error가 존재 몸체 부분은 치환을 방지하기 위해 { }로 묶어야 함 마지막에 수행한 명령의 리턴값을 돌려줌 { }의 다른 용도는 Newline 문자를 포함한 스트링을 묶을 수 있음 if, for while 등의 명령은 참/거짓을 돌려주는 boolean 수식을 포함 if, for, while 명령은 내부적으로 expr 명령을 자동으로 수행하기에 명시하지 않아도 됨 If Then Else if는 기본적인 조건 명령 조건이 참이면 뒤에 따르는 body를 실행하고 그렇지 않으면 else를 .. 2022. 9. 2.
TCL 자료 구조 TCL 자료 구조 TCL의 자료 구조 TCL의 기본적인 자료 구조는 String TCL에는 리스트와 배열의 두 가지 자료 구조가 더 존재 리스트는 스트링으로 구현되며 구조는 스트링 문법에 의해 정의 문법은 일반 명령의 경우와 같으며, 명령도 리스트의 일종 배열은 index를 가지는 변수 index또한 스트링 값이기에 배열은 하나의 스트링(index)로부터 다른 스트링(배열 원소의 값)의 대응이라고 생각할 수 있음 작은 자료의 경우 리스트가 적당, 큰 자료의 경우 배열이 적당 변수의 사용 puts [set var {the value of var}] #var = "the value of var" puts [set name var] #name = var puts [set name] #name = var put.. 2022. 9. 2.
TCL 스트링과 패턴 매칭 TCL 스트링과 패턴 매칭 스트링과 패턴 매칭 스트링은 TCL에서 사용하는 기본 자료 구조 TCL은 스트링을 다루는 많은 명령을 보유 스트링에서 특정 패턴을 찾아내는 패턴 매칭을 쉽게 할 수 있음 TCL은 Glob 매칭과 Regular Expression 매칭의 두 가지 패턴 매칭 방법을 제공 String 명령 String 명령의 기본 문법 string operation stringvalue ?otherargs? operation 인자는 string 명령으로 무엇을 할 것인지를 나타냄 stringvalue 인자는 string 값 그 외에 명령에 따라 인자가 더 올 수도 있다 string 명령의 여러 형태 string compare str1 str2 : 두 스트링을 비교. str1-str2 연산을 하여 s.. 2022. 9. 2.
TCL 기본 TCL 기본 TCL이란? 간단한 구조와 문법을 가지고 있는 스크립트 언어 자료형이 없는 등 다른 언어들과 다른 면이 많으므로 기본 개념을 잘 다져야함 TCL 시작하기 tclsh은 sch나 sh을 이용할 수 있는 명령어 해석기 wish는 Tk 명령어(GUI)들을 해석할 수 있도록 확장된 TCL 해석기 여러 명령을 파일에 넣어두고 실행시킬 수 있음 TCL의 source 명령을 사용해 실행 가능 ex) source filename 쉘 스크립트와 같이 독립적인 스크립트로 작성 가능 스크립트로 작성하기 위해서는 소스 코드의 맨 첫 줄에 추가해야 함 **!/usr/local/bin/tcl # 방법 1** **!/usr/lcoal/bin/wish # 방법 2** TCL/TK가 설치된 디렉토리가 위의 경로가 아닐 경우.. 2022. 9. 1.
TCL 설치하기 TCL 시작하기 https://www.activestate.com/products/tcl/downloads/에서 SDK를 설치 http://openjdk.java.net/에서 OpenJDK를 설치 (이미 JDK가 설치 되있는 경우 넘어가도 됨) 설치시 환경 변수 설정을 꼭 해줘야 함 시스템 변수에 “JAVA_HOME”을 생성하고 “Path”변수를 수정하여 “%JAVA_HOME%\bin”폴더를 추가 하단에 있는 새로 만들기를 클릭하여 OpenJDK가 생성된 위치로 변수 값을 지정 Path를 클릭 후 편집을 눌려 OpenJDK의 Bin 폴더를 등록 CMD에서 “java -version”을 입력하여 설치된 java의 정보를 확인 https://www.eclipse.org/downloads/eclipse-pac.. 2022. 9. 1.
TCL 별찍기와 산출물 입력받는 방법 2가지 1. gets로 입력을 받고 set으로 값을 할당 2. gets를 이용하여 입력을 받으며 바로 할당 # set 할당받을변수 할당할값 set n [gets stdin] # gets 입력되는값 할당할변수 gets stdin n []로 묶여있으면 []안에 있는 문장들이 연산이 되어 그 연산 결과를 출력 for {set i 1} {$i 2022. 8. 31.
728x90
728x90