2009-10-13 2 views
2

점자 번역 라이브러리를 만들고 있는데 문자열 문자열을 점자로 변환해야합니다. 나는 이것을 여러번 시도 할 계획이지만, 문자열의 어느 부분이 번역 되었는가와 그렇지 않은지를 추적 할 방법이 필요하므로 다시 번역하지 않습니다.다중 패스에서 문자열을 구문 분석하는 프로그래밍 관용구

나는 항상 처리 된 문자열의 위치 범위를 추적 할 클래스를 생성 할 수 있으며, 다음 검색에서이를 무시하도록 내 검색/바꾸기 알고리즘을 디자인 할 수 있지만, 그렇지 않은지 궁금합니다. 똑같은 일을 성취하기위한보다 우아한 방법.

나는 멀티 패스 문자열 변환이 그다지 드문 것이 아니라고 생각하며, 옵션이 무엇인지 잘 모르겠습니다.

+0

당신이 다른 패스에 작업의 어떤 종류를 수행합니까? 두 번째 패스 작업이 충돌하지 않도록 충분히 다른 작업을 수행 할 수 없습니까? 예를 들어, 1 패스, char latin을 char 대신 사용하여 braile, 2 pass, short-hand braile을 대신 할 long-braile을 대체 할 수 있습니까? –

+0

흥미 롭습니다 ... 나는 점자가 성격의 인물이라고 생각했고, 그 다음에 간단한 대체물이 될 것입니다. 이것은 사실이 아닙니다. – John

+0

Hehe - 점자에 대한 지식은 Charles Petzold의 "코드"에서 주로 나온다. 그러나 나는 약어 나 규칙이 있으며, 철자를 효과적으로 줄이고 일반적으로 스크립트를 간결하게 만든다고 생각한다. –

답변

4

더 일반적인 방법은 입력을 토큰 화 한 다음 토큰을 사용하는 것입니다. 예를 들어, 문자열을 각 문자의 토큰으로 토큰 화하여 시작하십시오. 그런 다음 첫 번째 패스에서 토큰별로 간단한 점자 매핑을 생성합니다. 후속 패스에서는 입력 토큰 시퀀스를 단일 출력 토큰으로 대체하는 등 더 많은 토큰을 대체 할 수 있습니다.

토큰이 단순 문자가 아닌 객체 또는 구조체이기 때문에 현재 토큰을 번역 한 원본 토큰과 같이 추가 정보를 각각 첨부 할 수 있습니다.

+0

고마워요. 나는 그것이 단지 일할지도 모른다라고 생각한다! – Aaron

+0

은 Limpel Ziv 인코딩을 생각 나게합니다. – easement

관련 문제