Showing posts with label Find. Show all posts
Showing posts with label Find. Show all posts

2013/04/30

TextCrawler - 간단하고 편리한 텍스트 파일 변환(바꾸기) 프로그램



OpenCV 64비트용 라이브러리를 만들면서 알게된 프로그램이다. OpenCV가 배포될 때 64비트용 dll과 lib가 배포되지만 32비트용과 64비트용이 이름이 같아 동일 경로에서 사용할 수 없어 이를 구분하기 위해 재 컴파일을 하는데 많은 프로젝트 파일안에 포함되어 있는 이름들을 하나씩 수작업으로 바꾸는 일은 매우 시간이 걸리고 귀찮은 작업이였는데 TextCrawler 를 이용하는 쉽게 해결이 되었다.


프로그램은 간단한 UI로 구성되어 있지만 많은 기능을 포함하고 있다. 파일 또는 폴더를 지정할 수 있고 폴더의 경우 필터링과 예외파일 지정도 가능 하다.


바꾸기는  일반적인 바꾸기 기능과 정규식 그리고 배치 처리도 지원하여 쉽게 바꾸지 작업을 할 수 있다.

 


TextCrawler 포럼

TextCrawler 2.3 Releas

Original Post :
http://neodreamer-dev.tistory.com/702

2009/02/23

[STL] map 의 맨 마지막 원소에 접근하기 (map.end() 는 마지막 원소가 아니다!!)

vector 나 list의 경우 크기를 가져와 마지막 원소에 쉽게 접근 할 수 있지만 map의 경우 Key 에 의해 접근으로 find() 멤버함수를 이용하여 iterator를 가져와서 접근할 수 있다.

그러면 맨 마지막 값을 가져오기 위해서는 맨 마지막 iterator를 가져오기만 하면 되는데...
map 의 member 함수 중 end() 함수가 있는데 이는 맨 마지막 iterator를 가리키기 않는다. end() 함수는 맨마지막 원소를 넘어선 map의 가장 마지막을 가르킨다. 그래서 end() 함수를 활용하여 맨 마지막 원소에 접근하려면 증감연산자(--)를 이용해 한단계 앞으로 iterator를 옮겨 주면 된다. 그리고 map 에는 rbegin() 이라는 함수도 제공하는데 이는 현재 map에 있는 원소를 거꾸로 하였을때 맨 처음 원소를 가리킨다.


map< int, Data* > mpData;

// end() 의한 마지만 원소 접근
map< int, Data* >::iterator it = --mpData.end();
Data* pData = it->second;

// rbegin() 에 의한 마지막 원소 접근
map< int, Data* >::reverse_iterator it = mpData.rbegin();
Data* pData = it->second;



위의 코드중 end() 함수에 의한 접근은 위험 요소를 갖고 있다. map에 저장된 데이터가 하나도 없을 경우 에러를 발생한다. end()에 의한 접근 전에 map의 크기를 검사 하는 루틴을 포함해 주어야한다.


Original Post : http://neodreamer-dev.tistory.com/257