반응형

 atoi 함수

     string -> 정수(fixnum) 변환

 atof 함수

     string -> 실수(flonum) 변환

결과

 

a = "1"
a = atoi(a)
println(a)
println(type(a))



b = list("1" "2" "3")
(foreach (x) b
	println(atoi(x))    
)


c = "0.25"
c = atof(c)
println(c)
println(type(c))

 

 

정수,실수 -> 문자열 변환 아래 참고

https://ansan-survivor.tistory.com/370

 

[Cadence SKILL / LISP] 정수 또는 실수를 string으로 변환 시켜주기, sprintf 함수 사용법 (숫자 문자열 변

정수(fixnum) -> string 변환, 실수(flonum) -> string 변환, b = 2 formatted_num = sprintf(nil "%d" b) a = 3.25 formatted_num = sprintf(nil "%f" a) 결과

ansan-survivor.tistory.com

 

반응형
반응형

LISP 및 Cadence SKILL 에서 사용하는 문자열 변수 포맷이다.

 

타입확인 및 출력방법은 아래 포스팅 참고

ansan-survivor.tistory.com/152

 

[Cadence Allegro SKILL] 언어 사용법 및 기초, SKILL파일 불러오기

Cadence Allegro PCB Editor에서는 SKILL이라는 언어를 제공하여 기능을 사용할 수 있다. 이를 활용해본다. SKILL에서는 띄어쓰기(Space) 구분자가 중요함으로 이를 각별히 주의한다. Allegro PCB Editor에서 SKIL..

ansan-survivor.tistory.com

ansan-survivor.tistory.com/176

 

[Cadence SKILL / LISP] SKILL 언어 조건문, 타입(type) 예시문

1. Data type을 확인하고 맞으면 if문에 들어가도록 하는 예시문 타입에 맞는 데이터가 들어가는지 if문을 통해 조절 할 수 있다. 그 방법은 아래와 같다. 문자열 : string 정수  : fixnum 실수  : flonum

ansan-survivor.tistory.com

 

 

 

 

반응형
반응형

이 함수는 어떤 문자열이 와도 모두 대/소 문자로 변경시킨다.

 

 

 

 

대문자로 변경시키기

 

upperCase("문자열")

test1 = "Hello"
test2 = "WoRlD"
test3 = "east west"
test4 = "two + 3 = fi5ve"

println(upperCase(test1))
println(upperCase(test2))
println(upperCase(test3))
println(upperCase(test4))

(결과) 전부 대문자로 바뀐것을 알 수 있다.

 

반응형

 

 

소문자로 변경시키기

 

lowerCase("문자열")

test1 = "Hello"
test2 = "WoRlD"
test3 = "east west"
test4 = "two + 3 = fi5ve"

println(lowerCase(test1))
println(lowerCase(test2))
println(lowerCase(test3))
println(lowerCase(test4))

(결과) 전부 소문자로 바뀐것을 알 수 있다.

반응형
반응형

문자열 합치기 함수 (문자열 단순 합치기)

strcat("문자" "문자" 문자" ...)

뒤에 들어오는 모든 문자가 하나로 합쳐진 문자로 출력된다.

 

 

반응형

 

문자열 합치기 응용하기 (문자열이 변수일 때)

 

"my"는 고정되어있고, 뒤에 오는 test변수가 계속 변할 때

sprintf 함수를 사용한다.

 

test변수에 따라 아래와 같은 결과를 얻고싶을 때 (foreach문 응용)

my string

my name

my number ...

 

 

문자열을 구분자(delimeter)와 함께 합쳐주는 함수가 존재한다.

 

반응형
반응형

 

아래와 같이 테스트

결과

 

; ## 기본 연산자 함수 ##

; a+b          =>  plus(a b)
; a-b          =>  minus(a b)
; a/b          =>  quotient(a b)  
; a*b          =>  times(a b)
; a**제곱값    =>  expt(a 제곱값)
; ++a          =>  preincrement(a)
; a++

; ## 비트연산 ##

; &  AND연산
; |  OR연산
; ^  XOR연산
; >> 오른쪽shift
; << 왼쪽shift
; ~  1의 보수

; ## 그외 수학 함수 ##

; 절대값(절댓값)=>  abs(값)
; sin          =>  sin(값 또는 연산)
; arc sine     =>  asin(값 또는 연산)
; cos          =>  cos(값 또는 연산)
; arc cosine   =>  acos(값 또는 연산)
; tan          =>  tan(값 또는 연산)
; arc tangent  =>  atan(값 또는 연산)
; 로그          =>  log(값)
; 루트          =>  sqrt(값)
; e(자연상수)   =>  exp(값)


; ## 기타 판독 함수 (판독 t/nil) ##

; numberp(값) => 숫자인지 판독
; zerop(값)   => 0인지 판독
; onep(값)    => 1인지 판독 (정수, 실수 모두)
; minusp(값)  => 음수인지 판독
; plusp(값)   => 양수인지 판독

; evenp(값)   => 짝수인지 판독
; oddp(값)    => 홀수인지 판독
; fixp(값)    => 정수인지 판독
; floatp(값)  => 실수인지 판독

; nequal(a b) => a와 b가 같은지 판독
; neq(a b)    => a와 b가 다른지 판독

 

반응형
반응형

정수에 관한 조작

결과 : 3

 

 

결과 : t

        nil

 

 

결과 : 41

 

반응형

 

실수에 관한 조작

결과 : 3.0

 

 

결과 : nil

        t

 

 

소수점에 대한 조작

결과 : 1234

 

 

(반올림)

결과 : 1235

        -9877

 

 

(내림)

결과 : -5

         3

 

 

(올림)

결과 : -4

         4

반응형
반응형

정수(fixnum) -> string 변환,

실수(flonum) -> string 변환,

b = 2
formatted_num = sprintf(nil "%d" b)

a = 3.25
formatted_num = sprintf(nil "%f" a)

 

결과

 

 

문자열 -> 정수,실수 변환 아래 참고

https://ansan-survivor.tistory.com/714

 

[Cadence SKILL / LISP] string number(문자열 숫자)를 정수 또는 실수로 변환 시켜주기, atoi/atof 함수 사용

 atoi 함수  string -> 정수(fixnum) 변환  atof 함수  string -> 실수(flonum) 변환 a = "1" a = atoi(a) println(a) println(type(a)) b = list("1" "2" "3") (foreach (x) b println(atoi(x)) ) c = "0...

ansan-survivor.tistory.com

 

반응형
반응형

아래 함수를 실행시키면 자동으로 .form 함수가 만들어짐

 

; Created by 안산드레아스
;
; 폼 자동생성 함수
;
; 함수가 실행되면, 현재 디렉터리에 자동으로
; xxx.form 파일이 만들어진다.
;
;
; *주의* 함수명과 () 사이 반드시 띄어쓰기 해야함
;        (defun 함수명 ()
;        )
;

(defun CreateForm_File ()

   ; 가변적으로 크기가 변할 때 사용
   ;
   ; Port_Size=7
   ; (foreach Item Etch_Layers
   ;    Port_Size = Port_Size + 1
   ; ); end foreach Item Etch_Layers

   ; outfile으로 파일 생성, FORM파일을 쓰기 위한 포트 열기
   Create_Form_Port = outfile("./unit_convert.form" "w")

   fprintf(Create_Form_Port "FILE_TYPE=FORM_DEFN VERSION=2\n")
   fprintf(Create_Form_Port "FORM\n")
   fprintf(Create_Form_Port "FIXED\n")
   fprintf(Create_Form_Port "PORT 45 8\n")
   fprintf(Create_Form_Port "HEADER \"Convert Units\"\n\n")

   fprintf(Create_Form_Port "TILE\n\n")

   fprintf(Create_Form_Port "TEXT \"Input :\"\n")
   fprintf(Create_Form_Port "TLOC 13 6\n")
   fprintf(Create_Form_Port "ENDTEXT\n\n")

   fprintf(Create_Form_Port "TEXT \"Output :\"\n")
   fprintf(Create_Form_Port "TLOC 13 9\n")
   fprintf(Create_Form_Port "ENDTEXT\n\n")

   fprintf(Create_Form_Port "FIELD mil_to_mm\n")
   fprintf(Create_Form_Port "FLOC 1 1\n")
   fprintf(Create_Form_Port "CHECKLIST \"mil -> mm\" \"label1\"\n")
   fprintf(Create_Form_Port "ENDFIELD\n\n")

   fprintf(Create_Form_Port "FIELD mil_to_mm\n")
   fprintf(Create_Form_Port "FLOC 1 3\n")
   fprintf(Create_Form_Port "CHECKLIST \"mm -> mil\" \"label1\"\n")
   fprintf(Create_Form_Port "ENDFIELD\n\n")

   fprintf(Create_Form_Port "FIELD inputbox\n")
   fprintf(Create_Form_Port "FLOC 20 6\n")
   fprintf(Create_Form_Port "STRFILLIN 8 25\n")
   fprintf(Create_Form_Port "ENDFIELD\n\n")

   fprintf(Create_Form_Port "FIELD calc\n")
   fprintf(Create_Form_Port "FLOC 9 11\n")
   fprintf(Create_Form_Port "MENUBUTTON \"Calculate\" 10 3\n")
   fprintf(Create_Form_Port "ENDFIELD\n\n")

   fprintf(Create_Form_Port "FIELD cancel\n")
   fprintf(Create_Form_Port "FLOC 20 11\n")
   fprintf(Create_Form_Port "MENUBUTTON \"Cancel\" 10 3\n")
   fprintf(Create_Form_Port "ENDFIELD\n\n")

   fprintf(Create_Form_Port "ENDTILE\n")
   fprintf(Create_Form_Port "ENDFORM\n")
   ; FORM 파일의 포트를 닫기
   close(Create_Form_Port)
   Create_Form_Port = nil
); end 

; 위에서 만든 .form 파일을 자동으로 생성
CreateForm_File()
반응형

함수실행시, 아래 파일이 만들어짐.

열어보면,

 

반응형
123

+ Recent posts