³ª. ¸¶ÁøÆø È®Àå

¸¶ÁøÀÇ ÆøÀº ÃÖÃÊ 25Çȼ¿·Î ÃʱâÈ­µÇ¾î Àִµ¥ ÀÌ Á¤µµ ÆøÀ̸é 4ÀÚ¸®ÀÇ ÁÙ¹øÈ£¸¦ Ãâ·ÂÇÒ ¼ö ÀÖ´Ù. ´ëºÎºÐÀÇ ¹®¼­´Â 9999ÁÙ Á¤µµ¸é ÃæºÐÇÏ°ÚÁö¸¸ ¸¸ ÁÙÀ» ³Ñ¾î°¥ °æ¿ì´Â ¸¸ ´ÜÀ§°¡ Àß·Á º¸ÀÌÁö ¾Ê°Ô µÉ °ÍÀÌ°í ÀÌ´Â »ç¿ëÀÚ¿¡°Ô ºÒÆí°ú È¥¶õÀ» ÃÊ·¡ÇÒ À§ÇèÀÌ ÀÖ´Ù. ±×·¸´Ù°í Çؼ­ ¸¶ÁøÀ» ¹«ÀÛÁ¤ ³Ð°Ô ¸¸µé¾î µÑ ¼öµµ ¾ø´Âµ¥ ÆíÁý ¿µ¿ªÀÌ ÁÙ¾îµé±â ¶§¹®À̱⵵ ÇÏÁö¸¸ ¸¶ÁøÀÌ ³Ê¹« ³ÐÀ¸¸é ¼ÖÁ÷È÷ º°·Î ¿¹»ÚÁö ¾Ê±â ¶§¹®ÀÌ´Ù.

Àû´çÇÑ ÆøÀ» °¡Áö°íµµ ¸¸ ÁÙ ÀÌ»óÀÇ ÁÙ¹øÈ£µµ Ãâ·ÂÇÒ ¼ö ÀÖµµ·Ï ÇÏ·Á¸é ¸¶ÁøÀÇ ÆøÀÌ ¹®¼­ ±æÀÌ¿¡ µû¶ó ½Ç½Ã°£À¸·Î Á¶Á¤µÇ´Â °ÍÀÌ °¡Àå ÀÌ»óÀûÀÌ´Ù. ¹®¼­¸¦ Àо°í ¸¸ ÁÙÀÌ ¾ÈµÇ¸é µðÆúÆ® ÆøÀÎ 25Çȼ¿À» ¾²°í ±× ÀÌ»óÀ̸é ÆøÀ» Á» ´Ã·ÁÁÖ¸é µÈ´Ù. °á±¹ ¸¶ÁøÆøÀº ¹®¼­ÀÇ ÃÑ ÁÙ¼ö¿¡ µû¶ó ´Þ¶óÁö´Âµ¥ ¹®¼­ÀÇ ÁÙ ¼ö¸¦ °áÁ¤ÇÏ´Â ÇÔ¼ö¿¡¼­ ¸¶ÁøÆøµµ °°ÀÌ Á¶Á¤ÇØ¾ß ÇÑ´Ù. UpdateLineInfo ÇÔ¼ö¿¡ ´ÙÀ½ Äڵ带 Ãß°¡Çϵµ·Ï ÇÏÀÚ.

 

void UpdateLineInfo()

{

     int l,s,e;

     int nPara, nLine=0;

 

     for (l=0, nPara=0;;l++) {

          GetLine(l,s,e);

 

          pLine[l].Start=s;

          pLine[l].End=e;

          pLine[l].nPara=nPara;

          pLine[l].nLine=nLine;

          if (s==-1) {

              TotalLine=l;

           if (MarginWidth != 0) {

               if (nPara >= 9999 && MarginWidth==25) {

                   MarginWidth=32;

                   SendMessage(hWndMain,WM_SIZE,0,0);

                   Invalidate(-1);

               }

               if (nPara < 9999 && MarginWidth==32) {

                   MarginWidth=25;

                   SendMessage(hWndMain,WM_SIZE,0,0);

                   Invalidate(-1);

               }

           }

              break;

          }

 

          if (buf[e]==¡®\r¡¯) {

              nPara++;

              nLine=0;

          } else {

              nLine++;

          }

     }

}

 

Á¤·ÄÀ» ´Ù ¿Ï·áÇßÀ» ¶§ ÃÑ ¹®´Ü ¼ö¿Í ÇöÀç ¸¶ÁøÆøÀ» º¸°í »õ ¸¶ÁøÆøÀ» Á¶Á¤ÇÑ´Ù. ¹®´Ü ¼ö°¡ 9999ÁÙ ÀÌ»óÀε¥ ¸¶ÁøÀÌ 25Çȼ¿À̶ó¸é 32Çȼ¿·Î ´Ã·Á ÁÖµµ·Ï ÇÏ¿´´Ù. Áï 10000¹ø° ¹®´ÜÀÌ ÀÖ°í ¸¶ÁøÆøÀÌ ´Ù¼¸ ±ÛÀÚ¸¦ Ãâ·ÂÇϱ⿡ Á¼´Ù¸é ÆøÀ» ´õ ´Ã·Á ÁÖ´Â °ÍÀÌ´Ù. ¸¶ÁøÆøÀ» ´Ã·ÁÁÖ´Â Äڵ尡 ÀÖ´Ù¸é ¹®¼­ÀÇ ÀϺκÐÀÌ »èÁ¦µÉ ¶§ ´Ù½Ã ÁÙ¿©ÁÖ´Â Äڵ嵵 ÀÖ¾î¾ß ÇÑ´Ù. ¹®´Ü ¼ö°¡ 9999¹Ì¸¸Àε¥ ¸¶ÁøÆøÀÌ 32Çȼ¿·Î µÇ¾î ÀÖ´Ù¸é À̶§´Â ¿ÀÈ÷·Á 25Çȼ¿·Î ÁÙ¿© ÁØ´Ù.

¸¶ÁøÆøÀÌ ¹Ù²î¸é Æ÷¸ËÆÿµ¿ªÀÌ ÁÙ¾îµé°í Á¤·Ä Á¶°ÇÀÌ ¹Ù²î±â ¶§¹®¿¡ óÀ½ºÎÅÍ ´Ù½Ã Á¤·ÄÇØ¾ß ÇÑ´Ù. Á¤·Ä »óÅ°¡ ¹Ù²î¸é ½ºÅ©·Ñ Á¤º¸µµ ¹Ù²ð °ÍÀÌ°í Æ÷¸ËÆÿµ¿ªÀÎ frtµµ ´Ù½Ã Á¶Á¤ÇØ¾ß ÇÏ°í ´õºí ¹öÆÛ¸µ¿¡ »ç¿ëÇÒ ºñÆ®¸Êµµ ´Ù½Ã »ý¼ºÇϵµ·Ï ÇØ¾ß ÇÑ´Ù. ÀÌ ¸ðµç 󸮸¦ ¿©±â¼­ Á÷Á¢ ÇÒ ÇÊ¿ä´Â ¾ø°í ´ë½Å WM_SIZE ¸Þ½ÃÁö¸¦ º¸³»¸é µÈ´Ù. ¸¶ÁøÆøÀÌ ¹Ù²ï °ÍÀº À©µµ¿ì Å©±â°¡ ¹Ù²ï °Í°ú ¿ÏÀüÈ÷ µ¿ÀÏÇÑ »óȲÀ̱⠶§¹®ÀÌ´Ù. ´Ü, À©µµ¿ì Å©±â°¡ Á¤¸» ¹Ù²ï °ÍÀº ¾Æ´Ï±â ¶§¹®¿¡ ÀÛ¾÷¿µ¿ª ¹«È¿È­´Â ¿©±â¼­ º°µµ·Î ÇØ¾ß ÇÑ´Ù.

ÀÌ·¸°Ô µÇ¸é UpdateLineInfo ÇÔ¼ö´Â OnSize¸¦ ÅëÇØ ÀڱⰡ ÀÚ½ÅÀ» °£Á¢ÀûÀ¸·Î ´Ù½Ã È£ÃâÇÏ´Â ±¸Á¶°¡ µÇ´Âµ¥ ±×·¸´Ù°í Çؼ­ ¹«ÇÑ·çÇÁ¿¡ ºüÁú À§ÇèÀº ¾ø´Ù. ¿Ö³ÄÇÏ¸é ¹®´Ü¼ö°¡ 10000À» ³Ñ¾î ¸¶ÁøÆøÀ» ´Ã¸° ÈÄ ´Ù½Ã Á¤·ÄÇÏ¸é ¹®´Ü ¼ö´Â ÃÖ¼ÒÇÑ 10000 ÀÌ»óÀÌ¸ç ¶ÇÇÑ ¹Ý´ë·Î 10000¹Ì¸¸À̾ ¸¶ÁøÆøÀ» ÁÙÀÌ¸é ´ÙÀ½ Á¤·ÄÇÑ °á°ú´Â ¿ª½Ã 10000À» ³ÑÁö ¾Ê±â ¶§¹®ÀÌ´Ù.

¸¶ÁøÆøÀÌ º¯°æµÇ¸é ÀÛ¾÷¿µ¿ª Àüü¸¦ ´Ù½Ã ±×·Á¾ß ÇÑ´Ù. ±×·³ ¸¶ÁøÆøÀÌ ¹®´Ü ¼ö¿¡ µû¶ó Á¦´ë·Î È®ÀåµÇ°í Ãà¼ÒµÇ´ÂÁö Å×½ºÆ®Çغ¸ÀÚ. ÀÌ·± Å×½ºÆ®¸¦ ÇÒ ¶§ ¼³¸¶ ¸¸ ÁÙÀ» ºÎÁö·±È÷ ´Ù ÀÔ·ÂÇØ º¼ »ç¶÷Àº ¾øÀ» °ÍÀÌ´Ù. ÀÌ ¿¹Á¦´Â ¾ÆÁ÷ 64KBÀÇ °íÁ¤ ¹öÆÛ¸¦ °¡Áö±â ¶§¹®¿¡ ¸¸ ÁÙ Á¤µµ¸¦ ÆíÁýÇÒ ¼öµµ ¾ø´Ù. ±×·¸´Ù°í Å×½ºÆ®¸¦ »ý·«ÇÏ°í ±×³É ³Ñ¾î°¡±â¿¡´Â Á» ºÒ¾ÈÇÏ°í ÂòÂòÇÏ´Ù.

ÀÌ·± Å×½ºÆ®¸¦ ÇÒ ¶§´Â Äڵ带 ¾à°£ ¼öÁ¤Çؼ­ 9999¸¦ 99³ª 9 Á¤µµ·Î Ãà¼ÒÇسõ°í Å×½ºÆ®ÇÏ¸é µÈ´Ù. 99·Î ¹Ù²Û ÈÄ 100ÁÙ °æ°è¿¡¼­ ¸¶ÁøÆøÀÌ Àß Á¶Á¤µÇ´Â °ÍÀ» È®ÀÎÇÑ ÈÄ 9999·Î ¹Ù²ã ³õ±â¸¸ ÇÏ¸é ¸¸ ÁÙ °æ°è¿¡¼­µµ Á¤È®ÇÏ°Ô µ¿ÀÛÇÑ´Ù. ³Ê¹«³ª ´ç¿¬ÇÑ ¾ê±âÁö¸¸ »ç½Ç Áö³ªÄ¡°Ô Á¤Á÷ÇÏ°í ¼º½ÇÇÑ »ç¶÷Àº ÀÌ·± ÀܲҸ¦ ¾²´Âµ¥ Á» ¹Ì¼÷ÇÑ °æ¿ìµµ ÀÖ´Ù.

ÀÌÁ¦ 99999ÁÙ±îÁöÀÇ ¹®¼­µµ ÁÙ ¼ö¸¦ Á¦´ë·Î Ãâ·ÂÇÒ ¼ö ÀÖ°Ô µÇ¾ú´Ù. ±×·¸´Ù¸é 10¸¸ ÁÙ ÀÌ»óÀÌ µÇ´Â ¹®¼­´Â ¾î¶»°Ô Çϴ°¡? 10¸¸ ÁÙÀ̶ó°í ÇØ ºÁ¾ß 5~10MB Á¤µµÀÇ Å©±â¹Û¿¡ ¾ÈµÇ¹Ç·Î ÀÌ·± ¹®¼­µµ ½É½ÉÄ¡ ¾Ê°Ô º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ¸¸¾à 10¸¸ ÁÙÀ̳ª ¹é¸¸ ÁÙ ¶Ç´Â ±× ÀÌ»óµµ Áö¿øÇÏ°í ½Í´Ù¸é °°Àº ¹æ¹ý´ë·Î ¸¶ÁøÆøÀ» ´õ ´Ã¸®¸é µÇÁö¸¸ ApiEdit´Â ±× ÀÌ»óÀº Æ÷±âÇϱâ·Î ÇÏ¿´´Ù.