´Ù. ¹®´Ü °ü¸® ÇÔ¼ö »ç¿ë

¹®´Ü °ü¸® ÇÔ¼öµéÀÌ ¿Ï¼ºµÊÀ¸·Î½á ÄÚµåÀÇ ¸î¸î ºÎºÐÀ» Á» ´õ È¿À²ÀûÀ¸·Î ¼öÁ¤ÇÒ ¼ö ÀÖ´Ù. ¹®´ÜÀÇ °³³äÀº ¾ÖÃÊ ApiEdit7¿¡¼­ ºÏ¸¶Å©¸¦ ¸¸µé ¶§ºÎÅÍ ÇÊ¿äÇß¾úÀ¸³ª ÀÌ ÇÔ¼öµéÀÇ ±¸ÇöÀÌ ´Ù¼Ò ¾î·Á¿î °Í °°¾Æ Áö±Ý±îÁö °è¼Ó ¹Ì·ç¾î ¿Ô¾ú´Ù. ´ÙÇàÈ÷ ¹®´Ü °³³äÀ» ÇÊ¿ä·Î ÇÏ´Â ºÎºÐÀÌ ¸¹Áö ¾Ê¾Æ Áö±Ý±îÁö ¼øÂ÷ °Ë»öÀ¸·Î ¹®´ÜÀ» ã°Å³ª µå¹°°Ô ¹ß»ýÇÏ´Â ³ë¿î ¹ö±×¸¦ ±×³É ³²°Ü µÎ¾ú¾ú´Âµ¥ ÀÌÁ¦ È®½ÇÇÏ°Ô ¼öÁ¤Çغ¸ÀÚ.

Àμö·Î Àü´ÞµÈ ¹®´ÜÀ¸·Î À̵¿ÇÏ´Â GotoLine ÇÔ¼ö¸¦ ¸ÕÀú ¼öÁ¤ÇÑ´Ù. ÀÌ ÇÔ¼ö¸¦ ÀÛ¼ºÇÒ ½ÃÁ¡¿¡´Â ¹®´Ü¹øÈ£·Î ¿ÀÇÁ¼ÂÀ» ã¾Æ°¡´Â ÇÔ¼ö°¡ ¾ø¾ú±â ¶§¹®¿¡ pLineÀ» óÀ½ºÎÅÍ ³¡±îÁö µÚÁö¸é¼­ ¹®´ÜÀ» ã´Â ¼øÂ÷ °Ë»öÀ» Çß¾ú´Ù. ÀÌÁ¦ GetOffFromPara ÇÔ¼ö·Î ¹®´ÜÀÇ ½ÃÀÛÁ¡À» Á» ´õ °£ÆíÇÏ°Ô Ã£¾Æ°¥ ¼ö ÀÖÀ¸¹Ç·Î ºñÈ¿À²ÀûÀÎ ¼øÂ÷ °Ë»ö Äڵ带 »èÁ¦ÇÏ°í ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇÑ´Ù.

 

void CApiEdit::GotoLine(int Line, int Col/*=0*/, int Type/*=0*/)

{

     int tLine;

    int toff;

     ClearSelection();

 

     switch (Type) {

     case 0:

          tLine=min(Line,TotalLine-1);

          off=GetOffFromRC(Line,Col);

          break;

     case 1:

        toff=GetOffFromPara(Line,Col);

        if (toff!=-1) {

           off=toff;

        }

          break;

     }

     SetCaret();

}

 

GetOffFromPara ÇÔ¼ö´Â À̵¿ÇÒ ¹®´Ü¹øÈ£¿Í Ä­ ¹øÈ£¸¦ Àμö·Î Àü´ÞÇϱ⸸ Çϸé ÀÌ À§Ä¡ÀÇ ¿ÀÇÁ¼ÂÀÌ ¾îµðÀÎÁö Á¶»çÇÑ´Ù. Á¶»çµÈ ¿ÀÇÁ¼ÂÀ¸·Î off º¯¼ö¸¦ º¯°æÇÑ ÈÄ SetCaret¸¸ È£ÃâÇϸé ij·µÀÌ ÀÖ´Â À§Ä¡·Î Áï½Ã À̵¿ÇÒ °ÍÀÌ´Ù. ¹®´Ü¹øÈ£°¡ ¹üÀ§¸¦ ¹þ¾î³¯ °æ¿ì -1À» ¸®ÅÏÇϴµ¥ ÀÌ ¶§´Â ¾Æ¹« °Íµµ ÇÏÁö ¾ÊÀ¸¸é µÈ´Ù. ºÏ¸¶Å©°¡ ¼³Á¤µÈ °÷À» ã¾Æ°¡´Â GotoBookmark ÇÔ¼öµµ ¹Ù·Î ¹®´ÜÀ» ã¾Æ°¥ ¼ö ÀÖ´Ù. ¼øÂ÷ °Ë»ö Äڵ带 »èÁ¦ÇÏ°í ´ÙÀ½°ú °°ÀÌ ¼öÁ¤Çϵµ·Ï ÇÏÀÚ.

 

void CApiEdit::GotoBookmark(int Mark)

{

     ....

     GotoLine(Para,0,1);

}

 

´ÙÀ½À¸·Î ¼öÁ¤ÇÒ °÷Àº °Ë»ö°á°ú·ÎºÎÅÍ ÁöÁ¤µÈ À§Ä¡·Î ã¾Æ°¡´Â OpenFileFromOutput ÇÔ¼öÀÌ´Ù. ÀÌ ÇÔ¼ö´Â °Ë»ö°á°úâ¿¡ ¾²¿©Áø ´ë·Î °Ë»öµÈ À§Ä¡¸¦ ã¾Æ³»´Âµ¥, ÀϹÝÀûÀ¸·Î Á¤»ó µ¿ÀÛÇÏÁö¸¸ °Ë»ö ÈÄ¿¡ ÆÄÀÏÀ» ¼öÁ¤ÇßÀ¸¸é °Ë»ö À§Ä¡¸¦ Á¦´ë·Î ãÁö ¸øÇÏ´Â ¹®Á¦°¡ ÀÖ´Ù. Á¦´ë·Î ãÁö ¸øÇÒ »Ó¸¸ ¾Æ´Ï¶ó ÀÌÀü À§Ä¡¿¡ ¹®ÀÚ°¡ ¾ø¾îÁ³°Å³ª ÇѱÛÀÇ °æ°è¿¡ °ÉÄ¡¸é Ä¡¸íÀûÀÎ ¿¡·¯¸¦ À¯¹ß½ÃÅ°±âµµ ÇÑ´Ù.

ÀÌ ÇÔ¼ö¸¦ ÀÛ¼ºÇÒ ½ÃÁ¡¿¡ ÀÌ¹Ì ¹®Á¦¸¦ ¾Ë°í ÀÖ¾úÁö¸¸ ÆÄÀÏÀÌ ¼öÁ¤µÇ¾ú´ÂÁöÀÇ ¿©ºÎ¸¦ È®ÀÎÇÒ ¹æ¹ýÀÌ ¾ø¾î ´çºÐ°£ ³ë¿î ¹ö±×·Î ³²°Ü µÎ¾ú¾ú´Âµ¥ ÀÌÁ¦ °Ë»ö°á°ú°¡ ÁöÁ¤ÇÏ´Â ¿ÀÇÁ¼ÂÀ» Á¤È®ÇÏ°Ô ±¸ÇÒ ¼ö ÀÖÀ¸¹Ç·Î ã¾Æ°¡±â Àü¿¡ ¿¡·¯ ¿©ºÎ¸¦ ¹Ì¸® ¾Ë ¼ö ÀÖ°Ô µÇ¾ú´Ù. ÀÌ ÇÔ¼ö¸¦ ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇÑ´Ù.

 

void OpenFileFromOutput(int idx)

{

     ....

     toff=pSi->Ae.GetOffFromPara(line,col);

     pSi->Ae.GetText(Text,MAX_PATH,toff,toff+lstrlen(LastFIF));

     if (stricmp(Text,LastFIF) != 0) {

          MessageBox(g_hFrameWnd,"°Ë»ö ÈÄ¿¡ ÆÄÀÏÀÌ ¼öÁ¤µÇ¾ú½À´Ï´Ù. "

              "°Ë»öµÈ ÁÙÀÇ Ã¹ À§Ä¡·Î À̵¿ÇÕ´Ï´Ù.","¾Ë¸²",MB_OK);

          toff=pSi->Ae.GetOffFromPara(line,0);

          pSi->Ae.GotoLine(line,0,1);

     } else {

          pSi->Ae.GotoLine(line,col,1);

          pSi->Ae.SetSelect(toff,toff+lstrlen(LastFIF),TRUE);

     }

}

 

°Ë»ö °á°ú¿¡ ±â·ÏµÈ ¹®´Ü¹øÈ£¿Í ¹®´Ü ³»ÀÇ Ä­ ¹øÈ£ÀÇ ÅؽºÆ®¸¦ ½ÇÁ¦·Î ÀÐ¾î º¸°í ¸¸¾à °Ë»öÇÑ ¹®ÀÚ¿­(LastFIF)°ú ÀÏÄ¡ÇÏÁö ¾ÊÀ¸¸é °Ë»ö ÈÄ¿¡ ÆÄÀÏÀÌ ¼öÁ¤µÈ °ÍÀ¸·Î ÆÇ´ÜÇÑ´Ù. À̶§´Â ÆÄÀÏÀÌ ¼öÁ¤µÇ¾î Á¤È®ÇÑ À§Ä¡¸¦ ´Ù½Ã ãÀ» ¼ö ¾ø´Ù´Â ¿¡·¯ ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÏ°í ¹®´ÜÀÇ ½ÃÀÛÀ§Ä¡·Î¸¸ ij·µÀ» ¿Å°ÜÁÖµµ·Ï Çß´Ù. ¹®´Ü¹øÈ£¿Í Ä­ ¹øÈ£·Î ¿ÀÇÁ¼ÂÀ» ã¾ÆÁÖ´Â GetOffFromPara ÇÔ¼ö°¡ ÀÛ¼ºµÇ¾î Àֱ⠶§¹®¿¡ °Ë»ö°á°ú·ÎºÎÅÍ ¹®¼­³»ÀÇ ÁöÁ¤ÇÑ À§Ä¡ÀÇ ¹®ÀÚ¿­À» ±¸ÇÒ ¼ö ÀÖ°Ô µÇ¾ú´Ù.

Áö±Ý±îÁö ÀÛ¼ºÇÑ ÄÚµå Áß¿¡ ¹®´Ü °ü¸® ÇÔ¼ö°¡ ²À ÇÊ¿äÇÑ ºÎºÐÀº ÀÌ Á¤µµ»ÓÀÌ´Ù. ÇÏÁö¸¸ ¾ÕÀ¸·ÎÀÇ ÆíÁýÄڵ忡¼­´Â ¹®´Ü °ü¸® ÇÔ¼öµéÀÌ ¾ÆÁÖ ¸¹ÀÌ »ç¿ëµÉ °ÍÀÌ´Ù. ApiEdit¸¦ ´õ ±íÀÌ ÀÌÇØÇغ¸°í ½Í´Ù°Å³ª Á÷Á¢ °³¼±Çغ¸°í ½Í´Ù¸é ÀÌ ÇÔ¼öµé¿¡ »¡¸® Àͼ÷ÇØÁ®¾ß ÇÑ´Ù.