IDL/Miscellaneous

특정 문구를 포함하는 IDL 루틴을 찾아주는 프로그램 소개

이상우_idl 2014. 7. 24. 15:56
728x90
반응형

IDL로 프로그래밍 작업들을 많이 하다 보면 이런 경우가 있습니다. 제가 분명히 어떤 프로그램에서 CASE~ENDCASE 구문을 사용했던 것이 기억이 납니다. 그런데 그 프로그램 루틴이 정확히 뭐였는지 기억이 가물가물합니다. 분명히 어떤 디렉토리안에 이 프로그램 루틴 파일이 있는 것 같습니다. 그런데 이 디렉토리안을 보니 .pro 파일들이 약 100여 개 정도가 있습니다. 하여간 일의 진행을 위해서는 이 프로그램 파일을 반드시 찾아야 합니다. 예전에 작업했던 중요한 내용들이 그 안에 있기 때문입니다. 이런 경우 여러분들은 어떻게 하시겠습니까?


물론 가장 원초적인 방법은 그 100여 개의 .pro 파일들을 IDL의 에디터 창에서 일일이 열어보고, 그 안에서 Ctrl+F와 같은 방식으로 ENDCASE라는 문구가 있는지를 찾아보는 방법일겁니다. 상당히 불편하고 짜증날 수도 있겠지요. 최악의 경우, 찾는 것을 포기하고 그냥 새로 만들게 되는 상황도 있을 수 있습니다. 저도 비슷한 경험을 해봤고, 아마 IDL로 일을 좀 많이 하시는 분들이라면 비슷한 문제로 불편을 겪었던 경험들이 한두번씩은 다들 있으실 것 같습니다. 그러면 좀 더 효율적으로 해결할 수 있는 방법은 없을까요? 그래서 제가 이런 불편을 해소할만한 IDL 프로그램을 제가 하나 만들어봤습니다. 첨부된 search_routines.pro라는 프로그램 파일을 받아서 한번 사용해보시길 권합니다. 이 프로그램의 사용법은 다음과 같습니다.


search_routines.pro


SEARCH_ROUTINES, 문구, 디렉토리 경로


예를 들어 위와 같이 ENDCASE라는 문구가 사용된 프로그램 루틴 파일을 'C:/MyIDL'이라는 디렉토리내에서 탐색하는 경우라면 다음과 같이 사용하면 됩니다.


IDL> search_routines, 'endcase', 'C:/IDL'


그러면 프로그램 내용안에 ENDCASE라는 문구가 사용된 프로그램 파일들이 뭔지를 찾아서 그 목록을 보여주게 됩니다. 그러면 다음과 같은 형식으로 결과를 출력합니다.


1   test1.pro   27

2   test2.pro   73


즉, test1,pro라는 프로그램의 27번째 줄, test2.pro라는 프로그램의 73번째 줄에 endcase라는 문구가 있다는 의미이므로, 이 두 프로그램 파일들을 바로 열어서 작업하면 됩니다. 참고로 search_routines의 첫번째 인자는 필수 인자이고 두번째 인자인 디렉토리 경로는 생략도 가능합니다. 다만 생략할 경우에는 현재 디렉토리를 탐색하게 됩니다. 사용법은 쉽습니다. 어차피 제가 불편해서 하나 만들어본 프로그램이지만 비슷한 불편을 겪으시는 다른 IDL 사용자들에게도 도움이 되었으면 하는 바램에서 이렇게 올려봅니다.


search_routines.pro
0.0MB
반응형