본문 바로가기

쓰기

랄까 어느새인가 개행처리가 아니라
텍스트 처리 필터가 되어있습니다만[......]

(CmdFilter는 텍스트와 텍스트 바깥을 구분하고, 이건 텍스트 내부를 처리하는 느낌?)

우선 입력 받을 내용은

MaxLine
MaxWord (MaxChar?)

개행 기호 문자열(또는 Hex)

그리고 함수 세트를 받고
다음과 같이 입력을 받습니다.
" " - 문자열
' ' - HexCode
* - 내부글자(글자 셈)
^ - 내부글자(글자 세지 않음)

또한 이함수를 받고, 이 녀석의 길이를 설정해 줍니다.

전에 논의했던 루비 태그는 이렇게 등록됩니다.
내용 : "{" ^ "/" * "}"
길이 : n+6
(n은 *의 길이입니다)

또 다른 예를 들면
내용 : "<b>" * "</b>"
길이 : n+7


단일 컨트롤 문자라면
내용 : "@x1"
길이 : 0
내용 : "⑤"
길이 : 2


부가 기능으로,
1. 반각 기호 처리 -> 2바이트로, 1바이트로
2. 띄어쓰기 처리 -> 띄어쓰기 함, 띄어쓰기 안함
3. 줄 채우기 -> 한, 안함
4. 개행 기호로 끝내기 -> 함, 안함

일단 옵션값으로 받은 내용은 여기까지 하고, 실제 처리 과정으로 들어가자면,

-전처리-

덧 - 함수의 시작부분을 발견하고 함수의 끝부분을 발견하면, 아까 입력받은 길이대로 길이를 추정합니다.

1. MaxWord를 기준으로 가득 찬 줄인지 가득 차지 않은 줄인지 확인합니다.
왜 이걸 구분하냐면,
가득 찼다면 그 문장이 아직 끝나지 않을 확률이 높기 때문이죠.
가득 차지 않았다면, 그 문장에 마침표 찍고 끝났을 확률이 높을거구요.

2. 가득 찼다면 그 줄의 개행기호를 날립니다.

-번역!-

-후처리-

1. MaxWord대로 글자를 잘라대기 시작합니다만, 개행 기호를 만난다면  당연히 엔터를 한것으로 간주하고 넘어갑니다.
이때 줄 채우기에 선택이 되어 있다면, 공백 기호로 남은 칸 수를 메꿉니다.

2. 이때, 함수 부분의 길이를 계산하고, 남은 줄 길이를 초과한다면, 그냥 엔터치고 그 다음줄에 넣습니다.
쪼갤까 생각해봤습니다만, 쪼개도 될놈이 있고 쪼개면 안될놈이 있을 것 같아 그냥[...]
또, 아예 함수 자체의 길이가 문장 길이보다 길어버린다면,
함수 내의 문자열을 문장 길이에 맞게 자른 후 넣어버립니다.

3. 줄수가 MaxLine이 될때까지 계속 자르고, 그 이후를 넘어가 버리면,
그 다음은 몽땅 날립니다.

-끝?-

대충 이렇게 되겠네요.
분류 :
Talk
조회 수 :
8149
등록일 :
2008.08.21
11:46:15
엮인글 :
https://arallab.hided.net/3729/95d/trackback
게시글 주소 :
https://arallab.hided.net/board_devtalk/3729
List of Articles
번호 제목 글쓴이 조회 수sort 추천 수 날짜 최근 수정일
공지 Talk [필독] 테스트필터 사용시 주의사항 라파에 155439   2008-08-03 2008-12-16 00:03
329 Archive [플러그인, 소스] FixControlCharactor 20080815(테스트버전) [2] file Hide_D 7533   2008-08-15 2009-01-06 02:06
 
328 Talk 퓩퓩... 퓩퓩... oTL whoami 7557   2008-08-02 2009-01-06 01:35
원인을 알아냈습니다. 하지만 이건.. 참 난감하군요. 이 문제는 RLCmd의 문제가 아닙니다. 이 문제는 SOW방식의 문제도 아닙니다. 이 문제는 한글 완성형 코드의 문제입니다... oTL 예전에 KoFilter 를 한참 만들고 있을 때... 이 이야기가 나온 적이 있었습니...  
327 Talk 문자열 -> Hex 변환이 제대로 안되네요. [7] Hide_D 7561   2008-08-02 2009-01-06 01:00
LPSTR ConvertHex(LPCSTR source){ size_t Len=strlen(source); char Temp[2048]=""; BYTE szBuf[3] = { '', }; int j=0; for(size_t i=0;i<Len;i++){ szBuf[0]=(BYTE) source[i]; szBuf[1]=(BYTE) source[i+1]; if(szBuf[0]<0x80){ //1바이트 코드라면 j += ...  
326 Archive [플러그인, 소스] CmdFilter 테스트 버전 20080806 [4] file whoami 7719   2008-08-06 2009-01-06 01:00
 
325 Archive [플러그인, 소스] CustomSD 0.3 20080810(테스트버전) [2] file Hide_D 7743   2008-08-10 2008-08-10 14:40
 
324 Archive [플러그인, 소스] RLCmd 20080806 file whoami 7775   2008-08-06 2009-01-06 01:00
 
323 Talk Hide_D군님, CCustomDic2 의 문제점을 알 것 같습니다.. [1] whoami 7811   2008-08-12 2008-08-12 22:41
저번에 (5) 문제.. 기억하시나요? 아마도 이것 때문인 것 같습니다. void CCustomDic2::PreCustomDic(LPSTR Dest, LPCSTR Source) { // ... 전략 for(int head=0;head<SourceLen;head++) { for(int tail=SourceLen-1;tail>head;tail--) { // ... 중략 ... //2...  
322 Archive [플러그인,소스] ezTransXP with CustomDic 0.3 20080805(테스트버전) file Hide_D 7830   2008-08-04 2008-08-05 01:06
 
321 Archive [플러그인, 소스] FixControlCharactor 20080817_4(테스트버전) file Hide_D 7877   2008-08-17 2009-01-06 01:01
 
320 Talk DumpText를 만들고 있는데... [2] Hide_D 7892   2008-08-02 2008-08-02 12:04
밖에서 모달리스 다이얼로그 안으로 데이터를 넣어주는 간단한 방법 없나요 =ㅅ=; 저 방법이 생각안나서 지금 해보려고 하는게, 실시간으로 바깥의 isTextFilled 를 체크해서 true인 경우만 밖의 텍스트를 가져온 다음에 isTextFilled를 false로 만드는 방법밖...  
319 Talk 리얼라이브 세이브에 대해서... [4] 나는누구인감? 7894   2008-08-01 2009-01-06 01:00
오늘 학교에서 하라는 공부는 안하고 곰곰히 생각을 해봤습니다. 세이브 할 경우 현재 위치의 이미지 정보 읽어들임 → 현재 위치의 대사 정보 읽어들임 → 세이브 파일에 저장 로드 할 경우 세이브 파일의 이미지 정보 읽어들임 → 세이브 파일의 대사 정보 읽어...  
318 Archive [플러그인] ATCode - OVERWRITE 테스트 버전 20080721 file whoami 7900   2008-07-21 2009-01-06 01:27
 
317 Talk 0.3에서 추가할것 Hide_D 7908   2008-08-03 2009-01-06 01:00
까먹을까봐 정리 사용자 사전계 1. 사용자사전 유/무 2. 범용사용자사전 유/무 3. 사용자 정의한 주소의 파일 열기(취소) 4. 탭처리 5. 검색 알고리즘 강화(보류) ezTransXP 강화계 1. 번역후 괄호 처리(다이얼로그에 추가)(보류) 2. 사용자 사전과 완벽히 분...  
316 Talk whoami님 Util.h의 옵션 파서가 [4] Hide_D 7908   2008-08-10 2008-08-10 15:13
문자열 을 지원하나요? 아니... 으음 c:documents and settindsuser내 문서Game,A루트(미완성).txt 라는 문자열을 파서로 받을 수 있나요?  
315 Talk 플러그인을 만들다가 '또다시' 엄청난 실수를 저질렀다는걸 깨달았습니다. [2] Hide_D 7929   2008-08-12 2009-01-06 01:01
이쪽은 프로그래밍이라보가는 구상과 관련된 문제네요 ㅠ_ㅠ 현재 제가 손대고 있는 플러그인이 사용자사전 사용자대본 개행문자처리 컨트롤문자처리 인데, 두개씩 묶여있는 구조죠. 그런데... 사용자대본 -> 문장단위처리 사용자사전 -> 단어단위처리 개행문...  
314 Archive [플러그인,소스] 사용자사전 0.3 20080813 (RC) file Hide_D 7965   2008-08-13 2008-08-14 23:24
 
313 Talk cmd로 리버ex 테스트 [2] file 앙마vv 8011   2008-07-25 2009-01-06 01:27
 
312 Archive [플러그인, 소스] CustomSD 0.3 20080810_2 [1] file Hide_D 8012   2008-08-10 2009-01-06 01:26
 
311 Archive [플러그인, 소스] DenyWord 테스트 버전 20080809 [1] file whoami 8067   2008-08-09 2009-01-06 01:26
 
310 Archive [플러그인, 소스] DenyWord 테스트 버전 20080811 file whoami 8097   2008-08-11 2009-01-06 01:05