¸¶. GetPrevOff

ÀÌÀü ¹®ÀÚ¸¦ ã´Â GetPrevOff ÇÔ¼ö´Â ¹®ÀÚÀÇ °æ°è¿¡ °ÉÄ¡´Â °ÍÀ» ¹æÁöÇϱâ À§ÇØ Ç×»ó ¹öÆÛÀÇ Ã³À½ºÎÅÍ ¹®ÀÚµéÀ» °Ë»öÇϵµ·Ï µÇ¾î ÀÖ´Ù. MBCS¿¡¼­ ÀÌÀü ¹®ÀÚ¸¦ Á¤È®ÇÏ°Ô Ã£±â À§Çؼ­´Â ÀÌ ¹æ¹ýÀÌ °¡Àå È®½ÇÇϱâ´Â Çϳª ¹®¼­ ±æÀÌ°¡ ±æ¾îÁö¸é ³Ê¹« ºñÈ¿À²ÀûÀÓÀ» ½±°Ô Á÷°¨ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

±»ÀÌ ¹®¼­ÀÇ Ã³À½ºÎÅÍ ½ÃÀÛÇÒ ÇÊ¿ä´Â ¾øÀ¸¸ç ¹®ÀÚÀÇ °æ°è°¡ ¾Æ´ÔÀ» È®½ÅÇÒ ¼ö ÀÖ´Â °÷À̶ó¸é Àû´çÈ÷ ¾Õ¿¡¼­ºÎÅÍ ½ÃÀÛÇصµ µÈ´Ù. ±×·¡¼­ ¾ÕÂÊÀ¸·Î °¡Àå °¡±î¿î °³ÇàÄڵ带 ãÀº ÈÄ °³ÇàÄÚµå ÀÌÈĺÎÅÍ °Ë»öÇϵµ·Ï ¼öÁ¤ÇÏ¿´´Ù.

 

int GetPrevOff(int nPos)

{

     int n, size;

 

     if (nPos==0) {

          return 0;

     }

 

    for (n=nPos-1;n!=0;n--) {

        if (buf[n]==¡®\r¡¯ && buf[n+1]==¡®\n¡¯) {

            break;

        }

    }

 

    for (;;) {

          if (IsDBCS(n)) {

               size=2;

          } else {

               size=1;

          }

          n+=size;

          if (n >= nPos)

               break;

     }

     return n-size;

}

 

¾Õ ÁÙÀÇ °³ÇàÄÚµåºÎÅÍ °Ë»öÀ» ½ÃÀÛÇϹǷΠȮ½ÇÇÏ°Ô ¹®ÀÚÀÇ °æ°è¿¡ °ÉÄ¡Áö ¾Ê°Ô µÉ °ÍÀÌ´Ù. ÀÌ ÇÔ¼ö¸¦ ¼öÁ¤ÇÔ¿¡ µû¶ó ¿ÞÂÊ À̵¿°ú BS 󸮰¡ ´õ »¡¶óÁö´Â °ÍÀº »ç½ÇÀÌÁö¸¸ ±× Â÷À̸¦ ü°¨ÇÏ´Â °ÍÀº °ÅÀÇ ºÒ°¡´ÉÇÏ´Ù. ¿Ö³ÄÇϸé ÀÌ ÇÔ¼ö°¡ È£ÃâµÇ´Â ½ÃÁ¡Àº ·çÇÁ ³»¿¡¼­°¡ ¾Æ´Ï¶ó »ç¿ëÀÚ°¡ ¿ÞÂÊ Ä¿¼­À̵¿Å°¸¦ ´©¸¦ ¶§Àε¥ ¾Æ¹«¸® Å°¸¦ »¡¸® ´­·¯µµ ÀÌ ÇÔ¼öÀÇ µ¿À۽𣺸´Ù »¡¸® ´©¸¦ ¼ö´Â ¾ø±â ¶§¹®ÀÌ´Ù.

¹®µæ ÀÌ·± ¾ê±â°¡ »ý°¢³­´Ù. °©°ú À»ÀÌ È£Á£ÇÑ »ê±æÀ» °È´Ù°¡ °õÀ» ¸¸³µ´Ù. À»ÀÌ ¸ÕÀú °õÀ» ¹ß°ßÇߴµ¥ °©¿¡°Ô ¸»µµ ÇÏÁö ¾Ê°í È¥ÀÚ¼­ ¶Ù¾ú´Ù. °ðÀÌ¾î °©µµ °õÀ» ¹ß°ßÇÏ°í °°ÀÌ ¶Ù±â ½ÃÀÛÇß´Ù. °©ÀÌ À»À» ¾ÕÁö¸£·Á ÇÏÀÚ À»ÀÌ ¡®´Ï°¡ ±×·¸°Ô ¶Ù¾îºÃÀÚ °õº¸´Ù »¡¸® ¶Û ¼ö ÀÖÀ» °Í °°¾Æ?¡¯, ±×·¯ÀÚ °©ÀÌ ¡®´©°¡ °õº¸´Ù »¡¸® ¶Ú µ¥? ³Êº¸´Ù »¡¸® ¶Ù±â¸¸ ÇÏ¸é µÅ!¡¯. »ç¿ëÀÚ°¡ È£ÃâÇÏ´Â ÇÔ¼ö´Â »ç¿ëÀÚº¸´Ù ºü¸£±â¸¸ ÇÏ¸é º° ¹®Á¦°¡ ¾øÀ¸¹Ç·Î ¼Óµµ°³¼±ÀÇ ¿ì¼± ¼øÀ§¸¦ ´Ê°Ô Àâ¾Æµµ »ó°ü¾ø´Ù.