본문 바로가기

쓰기

void CCustomDic2::SetKey(LPCSTR JpnWord, LPCSTR KorWord)
{
    map<UINT,struct DicWord> EmptyMap;
    struct DicWord TempWord;

    map<size_t,UINT>::iterator iterBook;

    TempWord.WordLen = strlen(KorWord);
    TempWord.WordN = WordN++;

    UINT Hash=MakeStringHash(JpnWord);
    size_t IndexChar=TempWord.WordLen*65536+JpnWord[1]; //길이 * 65536 + 2번째 글자로 한차례 걸러내기
    UINT ValuePointer=0;

    iterBook = KeyIndex.find(IndexChar);
    if(iterBook==KeyIndex.end()){
        //값이 들어있지 않다면
        KeyIndex[IndexChar]=BookN;
        KeyBook.push_back(EmptyMap);
        //새 맵을 집어넣는다.

        ValuePointer=BookN++;
    }
    else{
        //값이 들어있다면
        ValuePointer=iterBook->second;
    }

    KeyBook[ValuePointer][Hash]=TempWord;
    ValueList.push_back(KorWord);
    //삽입
}



헤더에는
map<size_t, UINT> KeyIndex;
vector<map<UINT,struct DicWord>> KeyBook;

vector<string> ValueList;

UINT WordN;
UINT BookN;
으로 선언되어 있습니다.
분류 :
Talk
조회 수 :
8705
등록일 :
2008.08.09
20:27:04
엮인글 :
https://arallab.hided.net/3603/0e6/trackback
게시글 주소 :
https://arallab.hided.net/board_devtalk/3603

whoami

2008.08.09
22:05:25

뭔가 대충은 괜찮아 보입니다만.. 테스트를 잘 해보시기 바랍니다.
저도 눈과 머리로 시뮬레이션해서 결과를 도출시키는 데에는 한계가 있고 종종 틀리니까 말이죠.
제가 직접 코딩하는 프로그램도 그런데, 다른 분의 코드를 딱 보고 에러가 있는지 없는지 확인하기는 더 어렵습니다.

결론은.. 로그파일을 만들어 뽑아보던지 테스트 문자를 넣어보던지 하면서 에러를 직접 잡으시기 바랍니다;;; (퍼억)

Hide_D

2008.08.09
22:13:18
뭐 일단 에러는 안났으니 괜찮겠죠[...]

대충 콘솔 프로그램 하나 만들어서 돌려봐야할듯
List of Articles
번호 제목 글쓴이 조회 수 추천 수 날짜 최근 수정일
공지 Talk [필독] 테스트필터 사용시 주의사항 라파에 155439   2008-08-03 2008-12-16 00:03
88 Archive [플러그인, 소스] DenyWord 테스트 버전 20080810 file whoami 8164   2008-08-10 2009-01-06 01:26
 
» Talk 맵을 이렇게 사용해도 되나요? [2] Hide_D 8705   2008-08-09 2008-08-09 22:13
void CCustomDic2::SetKey(LPCSTR JpnWord, LPCSTR KorWord) { map<UINT,struct DicWord> EmptyMap; struct DicWord TempWord; map<size_t,UINT>::iterator iterBook; TempWord.WordLen = strlen(KorWord); TempWord.WordN = WordN++; UINT Hash=MakeStringHas...  
86 Archive [플러그인, 소스] 사용자 대본 & 사전 플러그인 20080809(테스트버전) [2] file Hide_D 8362   2008-08-09 2008-08-10 00:02
 
85 Talk 플러그인을 다시 Multi2용으로 만들면서 생긴 궁금증 [4] Hide_D 8374   2008-08-09 2009-01-06 01:26
MFC를 그대로 써야하는지라 API용의 기본틀을 쓸순 없어서 새로 만들었는데, extern "C" __declspec(dllexport) BOOL __stdcall OnPluginInit(HWND hSettingWnd, LPSTR cszSettingStringBuffer); extern "C" __declspec(dllexport) BOOL __stdcall OnPluginOpt...  
84 Archive [플러그인, 소스] DenyWord 테스트 버전 20080809 [1] file whoami 8067   2008-08-09 2009-01-06 01:26
 
83 Archive [플러그인, 소스] CmdFilter 테스트 버전 20080807_2 file whoami 12660   2008-08-07 2009-01-06 01:26
 
82 Archive [플러그인, 소스] CmdFilter 테스트 버전 20080807 whoami 8699   2008-08-07 2009-01-06 01:26
고급 옵션 설정시 중복되는 버그 고친 버전입니다. 이상한데.. 분명히 고친 것 같았는디... 버그가 또 발견되어 삭제합니다. http://aralgood.com/zbxe/56444 를 참조.  
81 Archive [플러그인,소스] ezTransXP with CustomDic 0.3 20080806(테스트버전) [1] file Hide_D 8712   2008-08-06 2009-01-06 01:00
 
80 Archive [플러그인, 소스] CmdFilter 테스트 버전 20080806 [4] file whoami 7719   2008-08-06 2009-01-06 01:00
 
79 Archive [플러그인, 소스] RLCmd 20080806 file whoami 7775   2008-08-06 2009-01-06 01:00
 
78 Archive [플러그인,소스] ezTransXP with CustomDic 0.3 20080805(테스트버전) file Hide_D 7830   2008-08-04 2008-08-05 01:06
 
77 Talk 함수, 변수 작명법 잘 정리된곳 없나요; [1] Hide_D 9291   2008-08-03 2009-01-06 01:00
결국 소스로 올려야하니까 좀 정리는 해둬야겠다.. 싶어서 번역쪽은 그냥 0.2버전(캐시 초기화) + 약간의 강화로 변경  
76 Talk 현재까지 작업물 + 에러 OTL [2] file Hide_D 9891   2008-08-03 2008-08-03 21:08
 
75 OtherFiles [잡다]UTF8텍스트파일 -> Hex 출력기 file Hide_D 10613   2008-08-03 2008-08-03 16:26
 
74 Talk VS 2005로 갈아탔습니다 [1] Hide_D 8272   2008-08-03 2009-01-06 01:34
MFC, 리소스 에디터 때문에 도저히 못 버티다가 옮겼습니다. VS 2008 깔고는 그 느린 속도에 기겁했는데, 이쪽은 꽤 빠르네요. [우홋홋] 근데, 2005와 2008 차이가 뭐죠? 버전 옮길때 그냥 파일 열고 버전 숫자만 바꾸면 땡이네요[...]  
73 Talk 0.3에서 추가할것 Hide_D 7908   2008-08-03 2009-01-06 01:00
까먹을까봐 정리 사용자 사전계 1. 사용자사전 유/무 2. 범용사용자사전 유/무 3. 사용자 정의한 주소의 파일 열기(취소) 4. 탭처리 5. 검색 알고리즘 강화(보류) ezTransXP 강화계 1. 번역후 괄호 처리(다이얼로그에 추가)(보류) 2. 사용자 사전과 완벽히 분...  
72 Talk DumpText는 아직 개선이 좀 필요한듯; [3] Hide_D 8111   2008-08-03 2009-01-06 01:00
여러개를 켤 수가 없다는 단점이 있네요[...] 그나저나 질문, 헤더 파일에서 extern으로 선언하면 그 프로그램 전체에서 공유되는건가요? 그렇다면, 창은 하나만 띄우고 플러그인 로드될때마다 번호를 매겨서 옵션을 먹여야 하려나요..  
71 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 += ...  
70 Archive [플러그인, 소스] RLCmd 20080802 [1] file whoami 8818   2008-08-02 2009-01-06 01:00