´ÙÀ½Àº »èÁ¦ µ¿ÀÛÀ» ±â·ÏÇÏ´Â URDelete ÇÔ¼ö¸¦ ÀÛ¼ºÇغ¸ÀÚ. ÀÌ ÇÔ¼öµµ ¸ÕÀú ¼ø¼µµ¸¦ ±×·Á º¸°í ¼ø¼´ë·Î Äڵ带 ÀÛ¼ºÇÑ´Ù. URInsert¿Í À¯»çÇÏÁö¸¸ ´Ù¸¥ ºÎºÐµµ ¸î ±ºµ¥ ÀÖ´Ù.
ÀÌ ¼ø¼µµ¸¦ ±×´ë·Î ÄÚµå·Î ¿Å±â¸é ´ÙÀ½ ÇÔ¼ö°¡ ¸¸µé¾îÁø´Ù.
void CApiEdit::URDelete(int nPos, TCHAR *str)
{
TCHAR *t;
if (CanRedo()) {
ClearRedo();
} else {
if (pUR[nowur].action==UR_DELETE) {
if (str[0]==¡® ¡® || str[0]==¡®\r¡¯) {
NextRecord();
} else {
if (pUR[nowur].pos - lstrlen(str)==nPos) {
AllocURData(nowur,lstrlen(pUR[nowur].data)+lstrlen(str)+1,5);
t=(TCHAR *)malloc(_msize(pUR[nowur].data));
lstrcpy(t,str);
lstrcat(t,pUR[nowur].data);
lstrcpy(pUR[nowur].data,t);
free(t);
pUR[nowur].pos = nPos;
return;
} else if (pUR[nowur].pos == nPos) {
AllocURData(nowur,lstrlen(pUR[nowur].data)+lstrlen(str)+1,5);
lstrcat(pUR[nowur].data,str);
return;
} else {
NextRecord();
}
}
} else {
if (pUR[nowur].action != UR_NONE) {
NextRecord();
}
}
}
AllocURData(nowur,lstrlen(str)+8,0);
pUR[nowur].action=UR_DELETE;
pUR[nowur].pos=nPos;
lstrcpy(pUR[nowur].data,str);
}
¾Æ·¡ÂÊÀÇ 4ÁÙÀÌ º´ÇÕÀ̳ª Ãë¼Ò ·¹ÄÚµå »èÁ¦¾øÀÌ »èÁ¦ µ¿ÀÛ¸¸ ±â·ÏÇÏ´Â °¡Àå °£´ÜÇÑ °æ¿ìÀÇ ÄÚµåÀÌ´Ù. »ðÀÔ µ¿ÀÛ°ú °ÅÀÇ µ¿ÀÏÇ쵂 action¿¡ 2¸¦ ±â·ÏÇÑ´Ù´Â Á¡¸¸ ´Ù¸£´Ù. Ãë¼Ò ·¹Äڵ带 »èÁ¦ÇÏ´Â Äڵ嵵 URInsert¿Í ¿ÏÀüÈ÷ µ¿ÀÏÇÏ´Ù. ÀÌ ÇÔ¼ö°¡ URInsert¿Í ´Ù¸¥ Á¡Àº °ø¹é¿¡ ÀÇÇØ ·¹Äڵ带 ºÐÇÒÇÏ´Â ½ÃÁ¡°ú À§Ä¡ ¿¬¼Ó Á¶°ÇÀ» Á¡°ËÇÏ´Â ¹æ¹ýÀÌ´Ù.
»ðÀÔÇÒ ¶§´Â °ø¹éÀÇ ÀԷ¿¡ ÀÇÇØ ·¹Äڵ带 ³ª´©¹Ç·Î ÀÏ´Ü °ø¹é±îÁö º´ÇÕÇسõ°í Á¡°ËÀ» ÇÏÁö¸¸ »èÁ¦ÇÒ ¶§´Â °ø¹éÀÌ ³ª¿ÀÀÚ¸¶ÀÚ »õ ·¹ÄÚµå·Î À̵¿ÇÑ ÈÄ »èÁ¦ ·¹Äڵ带 ÀÛ¼ºÇÑ´Ù. ÀÌ·¸°Ô ÇØ¾ß °ø¹éÀÌ °¡±ÞÀûÀÌ¸é ´Ü¾îÀÇ µÚ¿¡ À§Ä¡ÇÏ°Ô µÈ´Ù. »ðÀÔÇÒ ¶§´Â °ø¹éÀÌ ´Ü¾îÀÇ ³¡¿¡ ÀÖÁö¸¸ ÀÌ ´Ü¾î¸¦ »èÁ¦ÇÒ ¶§´Â °ø¹éÀÌ Á¦ÀÏ ¸ÕÀú »èÁ¦µÈ´Ù´Â Á¡À» »ý°¢Çغ¸±â ¹Ù¶õ´Ù.
»èÁ¦ À§Ä¡°¡ ¿¬¼ÓÀΰ¡ ¾Æ´Ñ°¡¸¦ ÆÇ´ÜÇÏ´Â ¹æ¹ýµµ Á» ´Ù¸£´Ù. »ðÀÔÇÒ ¶§´Â »õ·Î ÀÔ·ÂµÈ ¹®ÀÚ¿ÀÌ µÚÂÊ¿¡ µ¡ºÙ¿©Áö¹Ç·Î Á¶°ÇÀÌ Çϳª»ÓÀÌÁö¸¸ »èÁ¦ÇÒ ¶§´Â BS¿¡ ÀÇÇØ »èÁ¦µÇ´Â °æ¿ì¿Í Del¿¡ ÀÇÇØ »èÁ¦µÇ´Â µÎ °¡Áö À¯ÇüÀ¸·Î ³ª´©¾îÁø´Ù. µÎ À¯ÇüÀº º´ÇÕ ¿©ºÎ¸¦ ÆÇ´ÜÇÏ´Â ¹æ¹ýµµ ´Ù¸£Áö¸¸ º´ÇÕÇÏ´Â ¹æ¹ýµµ ´Ù¸£´Ù. ±¸Ã¼ÀûÀÎ ¿¹¸¦ µé¾î º¸ÀÚ. ¿ÀÇÁ¼Â 0¿¡¼ ¡°´ëÇѹα¹¡±À» ÀÔ·ÂÇÑ ÈÄ ¡°¹Î¡±ÀÚ¸¦ »èÁ¦ÇÑ »óȲÀÌ´Ù.
ȸ鿡´Â ¡°´ëÇѱ¹¡±±îÁö¸¸ ³²¾Æ ÀÖ°í ij·µÀº ¿ÀÇÁ¼Â 4¿¡ À§Ä¡ÇØ ÀÖ´Ù. ¡°¹Î¡±ÀÚ »èÁ¦¿¡ ´ëÇÑ »èÁ¦ ·¹ÄÚµå´Â ¿ÀÇÁ¼Â 4¿¡¼ ¡°¹Î¡±ÀÚ¸¦ »èÁ¦ÇßÀ½À» ±â·ÏÇÏ°í ÀÖÀ» °ÍÀÌ´Ù. ÀÌ »óÅ¿¡¼ <BS>Å°¸¦ ´·¯ ¾ÕÂÊÀÇ ¡°ÇÑ¡±ÀÚ¸¦ »èÁ¦Çß´Ù°í Çغ¸ÀÚ. ±×·¯¸é À̶§ ¿ÀÇÁ¼Â 2¿¡¼ ¡°ÇÑ¡±ÀÚ°¡ »èÁ¦µÇ¾ú´Ù´Â ·¹Äڵ尡 »ý¼ºµÇ´Âµ¥ ÀÌ ·¹ÄÚµå´Â ±âÁ¸¿¡ »èÁ¦µÈ ¡°¹Î¡±ÀÚ¿Í ¾ÕÂÊÀ¸·Î À§Ä¡°¡ ¿¬¼ÓÀûÀ̹ǷΠº´ÇÕµÉ ¼ö ÀÖ´Ù.
pUR[nowur].pos - lstrlen(str)==nPos Á¶°ÇÀº »èÁ¦ ·¹ÄÚµåÀÇ À§Ä¡¿¡¼ »õ·Î »èÁ¦µÇ´Â ¹®ÀÚ¿ÀÇ ±æÀ̸¦ »« À§Ä¡°¡ »õ·Î »èÁ¦µÇ´Â À§Ä¡¿Í °°´Ù´Â ¶æÀ̸ç BS¿¡ ÀÇÇØ ¹®ÀÚ°¡ »èÁ¦µÉ ¶§ À§Ä¡°¡ ¾ÕÂÊÀ¸·Î ¿¬¼ÓÀûÀÎÁö¸¦ ÆÇ´ÜÇÑ´Ù. ÀÌ Á¶°ÇÀÌ ÀÏÄ¡ÇÑ´Ù¸é ¹Ù·Î ¾ÕÂÊ ¹®ÀÚ°¡ Ãß°¡·Î »èÁ¦µÈ °ÍÀ̸ç À̶§ ·¹ÄÚµå´Â º´ÇյȴÙ. ¾ÕÂÊÀÇ ¹®ÀÚ°¡ »èÁ¦µÇ¾úÀ¸¹Ç·Î »õ·Î »èÁ¦µÈ ¹®ÀÚ°¡ dataÀÇ ¾ÕÂÊ¿¡ Ãß°¡µÇ¾î¾ß ÇÏ¸ç »èÁ¦ ·¹ÄÚµåÀÇ À§Ä¡(pos)´Â ¾ÕÂÊÀ¸·Î À̵¿µÇ¾î¾ß ÇÑ´Ù.
<Del>Å°¸¦ ´·¯ µÚÂÊÀÇ ¹®ÀÚ¸¦ »èÁ¦ÇÒ ¶§´Â Á¶°Ç½ÄÀÌ Á» ´Ù¸£´Ù. µÚÂÊÀ¸·Î ¹®ÀÚ°¡ »èÁ¦µÉ ¶§´Â ¿ÀÇÁ¼ÂÀÇ º¯È°¡ ¾øÀ¸¹Ç·Î pUR[nowur].pos == nPos Á¶°Ç½ÄÀ¸·Î µÚÂÊ ¿¬¼ÓÀÎÁö Á¶»çÇÑ´Ù. <Del>Å°´Â ¾Æ¹«¸® ´·¯µµ ij·µÀÌ º¯È°¡ ¾øÀ¸¹Ç·Î »èÁ¦ ·¹ÄÚµåÀÇ À§Ä¡°¡ »õ·Î »èÁ¦µÇ´Â ¹®ÀÚ¿ÀÇ À§Ä¡¿Í °°ÀºÁö¸¦ º¸¸é µÈ´Ù. º´ÇÕÇÏ´Â ¹æ¹ýÀº data µÚ¿¡ »õ·Î »èÁ¦µÈ ¹®ÀÚ¸¦ µ¡ºÙÀ̱⸸ ÇÏ¸é µÈ´Ù. µÎ À¯Çü ¸ðµÎ »õ·Î »èÁ¦µÇ´Â ¹®ÀÚ¿¡ ÀÇÇØ data ¹öÆÛ°¡ ºÎÁ·ÇÒ ¼ö ÀÖÀ¸¹Ç·Î AllocURData ÇÔ¼ö·Î ¸Þ¸ð¸®¸¦ Á¡°ËÇÒ ÇÊ¿ä°¡ ÀÖ´Ù.