¸¶ÁøÀÇ ÆøÀº ÃÖÃÊ 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´Â ±× ÀÌ»óÀº Æ÷±âÇϱâ·Î ÇÏ¿´´Ù.