보통 숫자 표기시 뒤에서부터 3자리 단위로 comma(, )를 넣곤 하는데요~

 

오늘은 숫자에 comma 를 자동으로 넣어주는 autohotkey 코드에 대해 소개하려 합니다.

 

역시나 검색을 해보니 저와 같은 궁금증을 갖고 계신 분들이 있더군요. 거기다 좋은 해결책 까지~

 

코드는 아래 주소에서 찾을 수 있었습니다.

https://autohotkey.com/board/topic/13919-adding-commas/

 

FormatNumber(Amount) {                             ; add commas after blocks of 3 digits left of decimal point (if any) 

    StringReplace Amount, Amount, - 

    IfEqual ErrorLevel,0, SetEnv Sign,- 

    Loop Parse, Amount, . 

        If (A_Index = 1) { 

            len := StrLen(A_LoopField) 

            Loop Parse, A_LoopField

                If (Mod(len-A_Index,3) = 0 and A_Index != len) 

                    x = %x%%A_LoopField%, 

                Else x = %x%%A_LoopField% 

            } Else Return Sign x "." A_LoopField 

        Return Sign x 

    }

 

아래 예와 같이 사용하고 실행해 보면~

 

numv =-12345678900

dd := FormatNumber(numv)

 

msgbox % dd

 

아래와 같은 결과가 나옵니다.

   

Autohotkey 를 사용하여 mailto 를 이용하면 메일 프로그램을 실행 할 수 있습니다.

 

본문의 내용을 적을 때 줄바꿈 등을 하려면 아스키 코드를 사용하여야 합니다.

 

이에 대한 내용은 아래 주소에서 확인 할 수 있습니다.

 

https://autohotkey.com/board/topic/16445-help-with-mailto-link/

 

아래와 같은 아스키 코드를 사용 할 수 있으며 % 앞에는 `(backquote) 를 붙여 줘야 합니다.

 

Space ( ) %20

Comma (,) %2C

Question Mark (?) %3F

Period (.) %2E

Exclamation Point (!) %21

Colon (:) %3A

Semicolon (;) %3B

New Line %0A

 

아래와 같은 명령으로 줄바꿈을 할 수 있습니다.

 

Run, mailto:abc@test.com?subject=TEST&body=첫재줄`%0A다음줄

 

아웃룩 사용하는데 attachment 는 안 되는 듯 하네요.


리눅스 데스크톱 사용시 요즘은 GUI 을 많이 사용하곤 하지만

 

그래도~ 리눅스는 터미널이죠~

 

보통의 경우 리눅스 터미널은 bash shell 을 사용하곤 하는데~ bash 에서 cd(change directory) 명령을 통해 디렉터리를 자주 왔다리 갔다리 하는데… 이게 참… 불편합니다.

 

그래서 좀 찾아보니 역시 어딘가에 답은 있더군요. 아래 글을 보니 commacd 라는 툴에 대해 소개 하더군요.

 

http://shyiko.com/2014/10/10/commacd/

 

말 그래도 ,( comma) 을 사용하여 directory 를 이동하는 건데~ 이게 써보니 무지하게 획기적이더군요.

 

commacd의 공식 사이트는 아래 주소와 같습니다.

 

https://github.com/shyiko/commacd

 

저는 지금 윈도우에서 사용 중이라 Cygwin 에서 진행을 해 봤습니다. 물론 리눅스에서도 똑같이 하면 됩니다.

 

위 페이지에서 Installation 부분을 보시면 아시겠지만 일단 curl 이 설치가 되어 있어야 합니다.

 

https://github.com/shyiko/commacd#installation

 

curl 이 설치되어 있는 분은 위 설명 대로 아래 명령어를 통해 설치하면 되고~

 

curl https://raw.githubusercontent.com/shyiko/commacd/master/commacd.bash -o ~/.commacd.bash && \

echo "source ~/.commacd.bash" >> ~/.bashrc

 

저처럼 아래와 같이 Cygwin에서 wget을 사용하여 설치 해도 됩니다. 주의할 점은 아래와 같이 –O 을 써야 한다는 겁니다.

 

wget https://raw.githubusercontent.com/shyiko/commacd/master/commacd.bash -O ~/.commacd.bash && \

echo "source ~/.commacd.bash" >> ~/.bashrc

 

 

vim ~/.bashrc 명령을 통해 .bashrc 파일을 확인 하면 아래 그림과 같이 source ~/.commacd.bash 라는 명령어가 추가 된 것을 확인 할 수 있습니다.

다음으로 bashrc 파일을 실행 합니다.

source ~/.bashrc

 

이제 commacd 을 사용하는 일만 남았군요.

 

Usage 을 보시면 간단한 사용 방법을 아실 텐데요~

 

https://github.com/shyiko/commacd#usage

 

주 사용방법은 , ,, ,,, 을 사용하는 겁니다.

 

, 는 하위 폴더로 가는 거고~ ,, 는 상위 폴더~ ,,, 는 상하위로 가는 명령어입니다.

 

, d 라는 명령어를 통해 현재 폴더 하위의 d 가 들어가 있는 폴더의 목록을 보여 주면 숫자로 선택 하면 됩니다.

 

, c 을 하면 c 로 시작하는 폴더가 나오고~ , p 라고 하면 p 로 시작하는 폴더가 나오죠~

 

그 하위로 갈 때도 일일이 path 을 다 치지 않고~ /usr/local/Cellar 폴더 가려면 , /u/l/ce 와 같이 일부만 쳐도 들어가더군요.

 

현재 저는 /cygdrive/c/Users/Administrator/Downloads 폴더에 있습니다. 현재 폴더의 상위 폴더인 /cygdrive/c 로 가기 위해서는

 

,, c 라고만 하면 상위에서 c 가 들어있는 최 하위 폴더로 가게 됩니다.

 

다음으로 ,,, 명령을 실행 해 볼 건데요. ,,, 명령을 통해 최상위 폴더 아래의 임의의 폴더로 접근 할 수 있습니다.

 

현재 저는 다음과 같이 /cygdrive/c/Program Files/AhnLab 폴더에 잇습니다.

 

그런데 /cygdrive/c/Windows 폴더에 접근 하고 싶다고 해보죠~

 

그럼 아래 그림과 같이 간단하게 ,,, c/win 라고만 타이핑 하면 해당 패턴을 가진 폴더가 나오고~ 아래 그림과 같이 0을 선택하여 해당 폴더로 이동 할 수 있습니다.

 

commacd 아~ 너무 편하고 좋네요. cd 의 혁명인 것 같습니다. 앞으로는 commacd 없으면 못 살 거 같네요.


MATLAB 은 실험 데이터 등을 분석하는데도 많이들 사용하실 텐데요.

 

파일 읽고 쓰기 등도 굉장히 편하게 할 수 있다는 장점이 있습니다.

 

그 중에서 오늘은 쉼표로 나눠진 파일인 csv 파일을 읽고 쓰는 방법에 대해 설명 드리려 합니다.

 

MATLAB 에서 csv 파일을 읽기 위해서는 csvread()라는 함수를 사용합니다.

 

사용방법은 굉장히 간단한데요. 기본 사용법만 설명 드리겠습니다.

 

다음과 같이 구성된 데이터 파일에 대해 파일을 읽어보죠~


 

간단하게 csvread() 함수와 함께 파일 명만 적어 주면 됩니다.


A=csvread('test.dat')


 

이제 csv 파일을 한번 써 볼까요? 핸드폰의 주소록 같은 경우에 CSV 파일 형태로 많이들 돼 있는데~

 

저는 MATLAB 의 변수 등을 C/C++ 코드에서 변수로 사용하고 싶을 때 사용합니다.

 

C/C++ 에서는 벡터 등에 변수를 저장 할 때 ,(comma) 로 구분하니깐요~

 

간단하게 예제를 보시죠. 뭐 너무 간단해서 설명할것도 없네요. ㅋㅋ 


csvwrite('temp.txt',A)



 

다음과 같이 CSV 파일이 생성된 것을 볼 수 있습니다.



+ Recent posts