[Ample/All] Full path 문자열에서 디렉터리와 파일명 분리하기, 문자열 조작

Version 2

    Ample을 통해 디자인 데이터로부터 얻어낸 정보를 파일로 보관하거나 디자인 파일 구조 아래의 특정 파일을 접근해야 할 경우에는 어떤 변수에 보관된 path 에서 디렉터리 부분만을 떼어내거나, 파일명만을 떼어내어 문자열을 조작해야 합니다.

     

    DMGR, Design Architect 와 Layout 등의 툴에서는 파일과 관련된 작업이 많이 있기 때문에 각각에 필요한 Ample 함수가 제공됩니다.

     

     

    $get_parent_directory() 는 디렉터리만을 떼어내는 함수로, $get_parent_directory("/home/user/design/to_layout_log") 를 실행하면 결과는 "/home/user/design" 입니다.

     

    $get_leafname() 은 파일명만을 떼어내는 함수로, $get_leafname("/home/user/design/to_layout_log") 를 실행하면 결과는 "to_layout_log" 입니다.

     

     

    위 두 함수는 definition을 열어 볼 수 있게 되어 있어, "/" 이외의 다른 문자를 기준으로 문자열을 분리해야 할 경우 응용할 수 있습니다.

     

     

    Layout에서는 $tokenize() 함수를 사용할 수 있습니다. 이 함수는 구분 기준이 될 문자들 두 번째 인자(벡터)로 받아 문자열을 분리한 결과를 배열 형태로 반환합니다.

     

    문자열을 구분하는 기준이 되는 문자를 명시하지 않으면 공백, 탭, 콤마기호를 구분자로 사용합니다.

     

     

    $tokenize("abc defg,hi     jklmn") 를 실행하면 결과는 ["abc", "defg", "hi", "jklmn"] 입니다.

     

    $tokenize("abc defg,hi     jklmn", ['\t']) 를 실행하면 결과는 ["abc defg,hi", "jklmn"] 입니다. 참고로 \t 는 탭키를 표현하는 방식입니다.

     

    주의) $tokenize의 두 번째 argument는 반드시 벡터형태의 변수로 지정해야 합니다.

     

     

     

    $tokenize() 함수 역시 definition을 열어 볼 수 있게 되어 있어, 만약 Design Architect에서 필요하다면 내용을 그대로 복사해서 사용하면 됩니다.

     

    내장되어 있는 함수의 definition을 보려면, 해당 함수를 실행할 수 있는 상태에서 MGC > Userware > Edit Source 메뉴를 누른 후, 열리는 prompt 창에 함수이름을 괄호를 제외하고 입력하면 됩니다.