°¡. ºÐ¼® ±â¹Ý Ŭ·¡½º

±¸¹® ºÐ¼®À» ÇÏ´Â ÁÖü´Â ºÐ¼®±âÀ̸ç Ŭ·¡½º·Î ±¸ÇöÇÒ °ÍÀÌ´Ù. ¹®¼­ Æ÷¸Ëº°·Î ±¸¹® ºÐ¼®ÀÇ ¹æ¹ýÀÌ ÁúÀûÀ¸·Î ´Þ¶óÁö¹Ç·Î Æ÷¸Ë´ç ÇϳªÀÇ ºÐ¼®±â¸¦ ¸¸µé¸ç ApiEdit´Â Àû¿ëÇÒ ¹®¹ý¿¡ µû¶ó ºÐ¼®±â °´Ã¼¸¦ ½ÇÇàÁß¿¡ ¹Ù²ã °¡¸ç »ç¿ëÇÑ´Ù. ÀÌ·¸°Ô µÇ·Á¸é ¸ðµç ºÐ¼®±â¸¦ ´ëÇ¥ÇÏ´Â ºÎ¸ð Ŭ·¡½º°¡ ÀÖ¾î¾ß ÇÑ´Ù. ApiEdit´Â ºÎ¸ð Ŭ·¡½ºÀÇ Æ÷ÀÎÅÍ Çϳª¸¸ °¡Áö°í ÀÖÀ¸¸é ¸ðµç ºÐ¼®±â¸¦ Á¦¾îÇÒ ¼ö ÀÖ´Ù. ¾Ë´Ù½ÃÇÇ ºÎ¸ð Ŭ·¡½ºÇüÀÇ Æ÷ÀÎÅÍ´Â ¸ðµç ÆÄ»ý Ŭ·¡½ºÀÇ °´Ã¼¸¦ °¡¸®Å³ ¼ö Àֱ⠶§¹®ÀÌ´Ù.

¹®¼­ÀÇ Æ÷¸Ë¿¡ µû¶ó ±¸¹® ºÐ¼®À» ÇÏ´Â ¹æ¹ýÀÌ ¾Æ¹«¸® ÁúÀûÀ¸·Î ´Ù¸£´Ù Çصµ °øÅëÀûÀ¸·Î °øÀ¯ÇÒ ¼ö ÀÖ´Â Äڵ尡 ¸¹ÀÌ ÀÖ´Ù. ºÐ¼® Á¤º¸¸¦ °ü¸®ÇÏ´Â ¹æ¹ýÀ̳ª ApiEdit¿Í Åë½ÅÇÏ´Â ¹æ¹ý µîÀº ¹®¹ý°ú »ó°ü¾øÀÌ ¸ðµç ºÐ¼®±â¿¡ Àû¿ëµÈ´Ù. ±×·¡¼­ ÀÌ·± °øÅëµÇ´Â ÄÚµå´Â ºÎ¸ð Ŭ·¡½º¿¡ ÇÑ ¹ø¸¸ ÀÛ¼ºÇسõ°í ÆÄ»ý Ŭ·¡½ºµéÀº ÀÌ Äڵ带 »ó¼Ó¹Þ¾Æ¼­ »ç¿ëÇÑ´Ù. °øÅë ÄÚµåÀ̹ǷΠ°¢ ºÐ¼®±â¸¶´Ù µû·Î ÀÛ¼ºÇÒ ÇÊ¿ä°¡ ¾ø´Ù.

°øÅë ÄÚµå¿Í ApiEditÀÇ ºÐ¼®±â Á¦¾î ÆíÀǸ¦ À§ÇØ ºÐ¼® ±â¹Ý Ŭ·¡½º¸¦ ÀÛ¼ºÇϱâ·Î ÇÑ´Ù. Parse.h¿¡ ´ÙÀ½°ú °°ÀÌ CParse Ŭ·¡½º¸¦ ÀÛ¼ºÇϵµ·Ï ÇÏÀÚ.

 

class CApiEdit;

class CParse

{

protected:

     int ParseSize;

     SParseStyle arStyle[32];

 

public:

     ParseInfo *pInfo;

     CParse();

     ~CParse();

     void InitInfo(BOOL bAlloc);

     void DeleteParseInfo(int nLine);

     void MakeParseInfo(int nLine, int &nUnit, int pos, int style);

     BOOL IsStringExist(TCHAR *list,TCHAR *str,int len,BOOL bCase);

     BOOL IsNumber(CApiEdit &ae,int s, int e);

     void ParseLines(CApiEdit &ae,int nLine);

     void GetStyleColor(int style, COLORREF &fore, COLORREF &back);

     void SetStyleColor(int style, COLORREF fore, COLORREF back);

     void GetStyleName(int style, TCHAR *szName);

 

     virtual void ParseLine(CApiEdit &ae,int nLine)=0;

     virtual TCHAR *GetInfo(int iIndex)=0;

};

 

ºÐ¼®±â´Â ¹®¼­ ³»¿ëÀ» Àоî¾ß ÇÏ¸ç µû¶ó¼­ ApiEditÀÇ buf, off µîÀÇ ÇÙ½É ¸â¹öº¯¼ö¿¡ ¾×¼¼½ºÇØ¾ß ÇÑ´Ù. ±×·¡¼­ CParseÀÇ ¸â¹öÇÔ¼ö´Â ºÐ¼® ´ë»óÀÌ µÇ´Â CApiEdit °´Ã¼ÀÇ ·¹ÆÛ·±½º¸¦ Àμö·Î ÃëÇϴµ¥ ÀÌ ¿øÇüÀ» ¼±¾ðÇÏ·Á¸é CParse¸¦ ¼±¾ðÇϱâ Àü¿¡ CApiEdit°¡ Ŭ·¡½ºÇüÀ̶ó´Â °ÍÀ» ¹Ì¸® ¾Ë·ÁÁà¾ß ÇÑ´Ù. ù ÁÙÀÇ class CApiEdit; Àü¹æ ¼±¾ð¹®ÀÌ ¹Ù·Î ÀÌ·± ÀÏÀ» ÇÑ´Ù. CApiEdit Ŭ·¡½º´Â CParse °´Ã¼¸¦ ¸â¹ö·Î °¡Áö°í CParse Ŭ·¡½º´Â CApiEdit °´Ã¼¸¦ Àμö·Î ÃëÇϹǷΠ»óÈ£ ÂüÁ¶¸¦ ÇÏ°í ÀÖ´Â ¼ÀÀÌ´Ù. ÀÌ·² ¶§´Â Çì´õ ÆÄÀÏÀÇ ¼ø¼­¸¦ Á¤ÇÒ ¼ö ¾øÀ¸¹Ç·Î ¸ÕÀú ÀÎŬ·çµåµÇ´Â ÂÊÀÌ ¹Ý´ëÂÊ Å¬·¡½º¿¡ ´ëÇÑ Àü¹æ ¼±¾ðÀ» °¡Á®¾ß ÇÑ´Ù.

¸â¹öº¯¼ö´Â ¼¼ °³ ¼±¾ðµÇ¾î Àִµ¥ pInfo°¡ ¹Ù·Î ºÐ¼® Á¤º¸ÀÌ´Ù. ÇÑ ÁÙÀÌ ¸î °³ÀÇ À¯´ÖÀ¸·Î ±¸¼ºµÉ °ÍÀÎÁö »óÇѼ±ÀÌ ¾ø´Â °Í°ú ¸¶Âù°¡Áö·Î ÇϳªÀÇ ¹®¼­°¡ ¸î °³ÀÇ ÁÙ·Î ±¸¼ºµÉ °ÍÀΰ¡µµ »óÇѼ±ÀÌ ¾ø´Ù. ±×·¡¼­ ÁÙ ºÐ¼® Á¤º¸ ¹è¿­µµ µ¿ÀûÀ¸·Î °ü¸®µÇ¾î¾ß ÇÑ´Ù. pInfo´Â ºÐ¼® Á¤º¸ ¹è¿­ÀÌ¸ç ¹®¼­ÀÇ ÁÙ ¼ö¸¸Å­ µ¿ÀûÀ¸·Î ÇÒ´çµÈ´Ù. ºÐ¼®±â ¿ÜºÎ¿¡¼­ ÀÌ Á¤º¸¸¦ ¼ö½Ã·Î ÂüÁ¶ÇØ¾ß ÇϹǷΠpInfo´Â public ¾×¼¼½º ÁöÁ¤À» °¡Áø´Ù.

ParseSize´Â ºÐ¼® Á¤º¸ ¹è¿­ÀÇ ÇÒ´çµÈ Å©±â°ªÀ̸ç pInfo ¹è¿­ °ü¸®¿¡ »ç¿ëµÈ´Ù. ParseSize´Â ¿ÜºÎ¿¡¼­ Á÷Á¢ ¾×¼¼½ºÇÏÁö ¾ÊÀ¸¹Ç·Î protected ¾×¼¼½º ¼Ó¼ºÀ¸·Î ¼±¾ðµÇ¾ú´Ù. arStyle ¹è¿­Àº ÀÌ ºÐ¼®±â°¡ Á¤ÀÇÇÏ´Â ½ºÅ¸ÀÏ Á¤º¸ÀÌ¸ç »ý¼ºÀÚ¿¡¼­ ÃʱâÈ­µÈ´Ù. ¹è¿­ÀÇ Å©±â°¡ 32ÀÌ¸ç ¸¶Áö¸· ¿ä¼Ò´Â ³¡ Ç¥½Ã¿¡ »ç¿ëµÇ¹Ç·Î ºÐ¼®±â´ç ÃÖ´ë 31°³ÀÇ ½ºÅ¸ÀÏÀ» Á¤ÀÇÇÒ ¼ö ÀÖ´Ù.

¸â¹öÇÔ¼ö´Â »ý¼ºÀÚ¿Í Æı«ÀÚ¸¦ Æ÷ÇÔÇÏ¿© ¸ðµÎ 13°³°¡ ¼±¾ðµÇ¾î Àִµ¥ °¢ ÇÔ¼ö¿¡ ´ëÇÑ °£·«ÇÑ ¼³¸íÀº ´ÙÀ½°ú °°´Ù.

 

ÇÔ¼ö

¼³¸í

»ý¼ºÀÚ

ºÐ¼® Á¤º¸ ¹è¿­À» Ãʱâ ÇÒ´çÇÑ´Ù.

Æı«ÀÚ

ºÐ¼® Á¤º¸ ¹è¿­À» ÇØÁ¦ÇÑ´Ù.

InitInfo

ºÐ¼® Á¤º¸ ¹è¿­À» ÇØÁ¦ÇÏ°í ÀçÇÒ´çÇÏ¿© ÃʱâÈ­ÇÑ´Ù.

DeleteParseInfo

nLine ÀÌÇÏ ¸ðµç ÁÙÀÇ ºÐ¼® Á¤º¸¸¦ »èÁ¦ÇÏ¿© ¹«È¿È­ÇÑ´Ù.

MakeParseInfo

ºÐ¼® Á¤º¸¸¦ ÀÛ¼ºÇÑ´Ù.

GetInfo

ID°ªÀ» Á¶»çÇØÁØ´Ù. ÀζóÀÎÀ¸·Î ÀÛ¼ºµÇ¾î ÀÖ´Ù.

ParseLines

nLineÁÙ±îÁö ºÐ¼®ÇÏ¿© ºÐ¼® Á¤º¸ ¹è¿­¿¡ °á°ú¸¦ ÀúÀåÇÑ´Ù.

ParseLine

nLineÁÙÀ» ºÐ¼®ÇÏ¿© ºÐ¼® Á¤º¸¸¦ ÀÛ¼ºÇÑ´Ù.

GetStyleColor

½ºÅ¸ÀÏ¿¡ µû¸¥ »ö»ó°ªÀ» Á¶»çÇÑ´Ù.

SetStyleColor

½ºÅ¸ÀÏ¿¡ µû¸¥ »ö»ó°ªÀ» ÃʱâÈ­ÇÑ´Ù.

GetStyleName

½ºÅ¸ÀÏÀÇ À̸§À» ±¸ÇÑ´Ù.

IsStringExist

¹®ÀÚ¿­ÀÌ Á¸ÀçÇÏ´ÂÁö °Ë»çÇÑ´Ù.

IsNumber

¼ýÀÚÀÎÁö °Ë»çÇÑ´Ù.

 

ÀÌ ÇÔ¼öµéÀº CParse Ŭ·¡½º°¡ Á¤ÀÇÇÏ°í ÆÄ»ý Ŭ·¡½º´Â ÀÌ ÇÔ¼ö¸¦ »ç¿ëÇϱ⸸ ÇÏ¸ç ¸ðµç ºÐ¼®±â°¡ °øÀ¯ÇÏ´Â ÄÚµåÀÌ´Ù. ºÐ¼® Á¤º¸ ¹è¿­À» ÃʱâÈ­Çϰųª »ý¼º, »èÁ¦ÇÏ´Â µ¿ÀÛÀº ¹®¹ý°ú´Â ¹«°üÇϱ⠶§¹®¿¡ ºÎ¸ð Ŭ·¡½º¿¡ ÇÑ ¹ø¸¸ ÀÛ¼ºÇسõÀ¸¸é µÈ´Ù. ¹®¹ýÀÌ ´Þ¶óÁø´Ù°í Çؼ­ ¹è¿­À» ÀÛ¼ºÇÏ´Â ¹æ¹ý ÀÚü°¡ ´Þ¶óÁöÁö´Â ¾ÊÀ¸¸ç ´Ù¸¸ ÀÛ¼ºµÇ´Â ³»¿ëÀÌ ´Þ¶óÁú »ÓÀÌ´Ù.

GetInfo ÇÔ¼ö¿Í ParseLine ÇÔ¼ö´Â ºÐ¼®±âº°·Î °íÀ¯ÇÏ´Ù. ParseLine ÇÔ¼ö´Â ½ÇÁ¦·Î ±¸¹®À» ºÐ¼®ÇÏ´Â ÇÔ¼öÀε¥ ÀÌ ÇÔ¼ö°¡ ¾î¶² ½ÄÀ¸·Î ¹®¼­¸¦ Çؼ®Çϴ°¡¿¡ µû¶ó ºÐ¼®°á°ú°¡ ´Þ¶óÁö°Ô µÈ´Ù. GetInfo ÇÔ¼ö´Â ºÐ¼®±âÀÇ ID³ª ±¸ºÐÀÚ, ÁÖ¼® µî¿¡ ´ëÇÑ Á¤º¸¸¦ Á¦°øÇÑ´Ù. ÀÌ µÎ ÇÔ¼ö´Â ºÎ¸ð Ŭ·¡½º°¡ ±¸ÇöÇÏÁö ¾ÊÀ¸¹Ç·Î ¼ø¼ö °¡»óÇÔ¼ö·Î ¼±¾ðµÇ¾î ÀÖÀ¸¸ç µû¶ó¼­ ÆÄ»ý Ŭ·¡½º´Â ÀÌ ÇÔ¼öµéÀ» ¹Ýµå½Ã ÀçÁ¤ÀÇÇØ¾ß ÇÑ´Ù.

CParse Ŭ·¡½º´Â ¼ø¼ö °¡»óÇÔ¼ö¸¦ °¡Áö°í ÀÖÀ¸¹Ç·Î °´Ã¼¸¦ ¸¸µé ¼ö ¾ø´Â Ãß»ó Ŭ·¡½º·Î ¼±¾ðµÇ¾î ÀÖ´Ù. ÀÌ Å¬·¡½ºÀÇ ±¸Çö ÄÚµå´Â Parse.cpp¿¡ ´ÙÀ½°ú °°ÀÌ ÀÛ¼ºÇÑ´Ù.

 

CParse::CParse()

{

     pInfo=NULL;

     InitInfo(TRUE);

}

 

CParse::~CParse()

{

     InitInfo(FALSE);

}

 

void CParse::InitInfo(BOOL bAlloc)

{

     int i;

 

     if (pInfo) {

          for (i=0;i<ParseSize;i++) {

              if (pInfo[i].pUnit) {

                   free(pInfo[i].pUnit);

              }

          }

          free(pInfo);

     }

 

     if (bAlloc) {

          ParseSize=100;

          pInfo=(ParseInfo *)malloc(sizeof(ParseInfo)*ParseSize);

          for (i=0;i<ParseSize;i++) {

              pInfo[i].UnitSize=5;

              pInfo[i].pUnit=(ParseUnit *)malloc(sizeof(ParseUnit)*pInfo[i].UnitSize);

              memset(pInfo[i].pUnit,-1,sizeof(ParseUnit)*pInfo[i].UnitSize);

              pInfo[i].Context=0;

          }

     }

}

 

void CParse::MakeParseInfo(int nLine, int &nUnit, int pos, int style)

{

     if (nUnit > 0) {

          if (pInfo[nLine].pUnit[nUnit-1].pos == pos) {

              nUnit--;

          } else

          if (pInfo[nLine].pUnit[nUnit-1].style == style) {

              return;

          }

     }

 

     if (pInfo[nLine].UnitSize == nUnit) {

          pInfo[nLine].UnitSize++;

          pInfo[nLine].pUnit=(ParseUnit *)realloc(pInfo[nLine].pUnit,

              sizeof(ParseUnit)*pInfo[nLine].UnitSize);

     }

 

     pInfo[nLine].pUnit[nUnit].pos=pos;

     pInfo[nLine].pUnit[nUnit].style=style;

     nUnit++;

}

 

void CParse::DeleteParseInfo(int nLine)

{

     int l;

 

     for (l=nLine;;l++) {

          if (l>=ParseSize || pInfo[l].pUnit[0].pos == -1)

              break;

 

          memset(pInfo[l].pUnit,-1,sizeof(ParseUnit)*pInfo[l].UnitSize);

     }

}

 

void CParse::ParseLines(CApiEdit &ae,int nLine)

{

     int l,i;

     int OldSize;

 

     if (nLine >= ParseSize) {

          OldSize=ParseSize;

          ParseSize=nLine+100;

          pInfo=(ParseInfo *)realloc(pInfo,sizeof(ParseInfo)*ParseSize);

          for (i=OldSize;i<ParseSize;i++) {

              pInfo[i].UnitSize=5;

              pInfo[i].pUnit=(ParseUnit *)malloc(sizeof(ParseUnit)*pInfo[i].UnitSize);

              memset(pInfo[i].pUnit,-1,sizeof(ParseUnit)*pInfo[i].UnitSize);

              pInfo[i].Context=0;

          }

     }

 

     if (pInfo[nLine].pUnit[0].pos != -1)

          return;

 

     for (l=nLine;l>=0;l--) {

          if (pInfo[l].pUnit[0].pos != -1)

              break;

     }

     l++;

 

     for (i=l;i<=nLine;i++) {

          ParseLine(ae,i);

     }

}

 

BOOL CParse::IsStringExist(TCHAR *list,TCHAR *str,int len,BOOL bCase)

{

     TCHAR *tbuf;

     BOOL ret;

 

     tbuf=(TCHAR *)malloc(len+3);

     tbuf[0]=¡® ¡®;

     lstrcpyn(tbuf+1,str,len+1);

     tbuf[len+1]=¡® ¡®;

     tbuf[len+2]=0;

     if (bCase==FALSE) {

          CharLower(tbuf);

     }

     ret=(strstr(list,tbuf)!=NULL);

     free(tbuf);

     return ret;

}

 

BOOL CParse::IsNumber(CApiEdit &ae,int s, int e)

{

     int i;

     TCHAR ch;

 

     if (ae.buf[s]==¡®0¡¯ && (ae.buf[s+1]==¡®x¡¯ || ae.buf[s+1]==¡®X¡¯)) {

          for (i=s+2;i<=e;i++) {

              ch=ae.buf[i];

              if (!((ch >= ¡®0¡¯ && ch <= ¡®9¡¯) ||

                     (ch >= ¡®a¡¯ && ch <= ¡®f¡¯) ||

                     (ch >= ¡®A¡¯ && ch <= ¡®F¡¯)))

                   return FALSE;

          }

     } else {

          for (i=s;i<=e;i++) {

              ch=ae.buf[i];

              if (!(ch >= ¡®0¡¯ && ch <= ¡®9¡¯))

                   return FALSE;

          }

     }

 

     return TRUE;

}

 

void CParse::GetStyleColor(int style, COLORREF &fore, COLORREF &back)

{

     fore=arStyle[style].fore;

     back=arStyle[style].back;

}

 

void CParse::SetStyleColor(int style, COLORREF fore, COLORREF back)

{

     arStyle[style].fore=fore;

     arStyle[style].back=back;

}

 

void CParse::GetStyleName(int style, TCHAR *szName)

{

     lstrcpy(szName,arStyle[style].name);

}

 

¼ø¼ö °¡»óÇÔ¼ö¿Í ÀζóÀÎ ÇÔ¼ö¸¦ Á¦¿ÜÇÑ ¿©¼¸ °³ÀÇ ÇÔ¼ö Äڵ尡 ÀÛ¼ºµÇ¾î ÀÖ´Ù. ÀÌ ÇÔ¼öµéÀº ¸ðµç ºÐ¼®±âµéÀÌ °øÅëÀûÀ¸·Î »ç¿ëÇÏ´Â °ø¿ë ÇÔ¼öµéÀÌ´Ù. Äڵ带 ºÐ¼®Çغ¸ÀÚ.

ºÐ¼® Á¤º¸ ¹è¿­ ÃʱâÈ­

ºÐ¼®±â´Â ºÐ¼® Á¤º¸ ¹è¿­ÀÇ Æ÷ÀÎÅÍÀÎ pInfo¸¸ °¡Áö°í ÀÖÀ¸¹Ç·Î ºÐ¼®°á°ú¸¦ ÀúÀåÇϱâ À§ÇØ ÀÌ ¹è¿­À» ¸ÕÀú ÇÒ´çÇÏ°í ÃʱâÈ­ÇØ¾ß ÇÑ´Ù. ÀÌ ÀÛ¾÷Àº InitInfo ¸â¹öÇÔ¼ö°¡ ÁÖ·Î ÇÏ°Ô µÇ¸ç »ý¼ºÀÚ¿Í Æı«ÀÚ ±×¸®°í ApiEditÀÇ InitDoc¿¡¼­ ÀÌ ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù. Äڵ带 º¸°í ºÐ¼®Çغ¸ÀÚ.

¹è¿­À» ÇÒ´çÇϱâ Àü¿¡ ¸ÕÀú ÀÌ¹Ì ÇÒ´çµÇ¾î ÀÖ´Â »óÅÂÀ̸é ÇÒ´çµÈ ¸Þ¸ð¸®¸¦ ÇØÁ¦ÇØ¾ß ÇÑ´Ù. ¹®¼­°¡ ¹Ù²ð ¶§ ÀÌÀü ¹®¼­ÀÇ ºÐ¼® Á¤º¸¸¦ Áö¿ö¾ß Çϱ⠶§¹®ÀÌ´Ù. pInfo°¡ NULLÀÌ ¾Æ´Ï¸é Áï ÇÒ´çµÇ¾î ÀÖ´Â »óÅÂÀ̸é pInfo´Â ¹°·ÐÀÌ°í pInfoÀÇ ¸â¹öÀÎ pUnitµµ °°ÀÌ »èÁ¦ÇÑ´Ù.

pInfo¸¦ ±ú²ýÇÏ°Ô ºñ¿î ÈÄ »õ·Î ÇÒ´çÇ쵂 ´Ü bAllocÀμö°¡ TRUEÀÏ ¶§¸¸ ÇÒ´çÇÑ´Ù. ÀÌ Àμö°¡ FALSEÀÌ¸é ±×³É pInfo¸¦ »èÁ¦Çϱ⸸ ÇÑ´Ù. ºÐ¼®±â¸¦ ¿ÏÀüÈ÷ Á¦°ÅÇÏ°íÀÚ ÇÒ ¶§ bAllocÀº FALSE°¡ µÈ´Ù. Ãʱâ ÇÒ´ç·®Àº ÃÑ 100ÁÙÀÇ ºÐ¼® Á¤º¸¸¦ ÀúÀåÇÒ ¼ö ÀÖµµ·Ï ÇÏ°í °¢ ÁÙ´ç 5°³ÀÇ À¯´ÖÀ» ÀúÀåÇÒ ¼ö ÀÖµµ·Ï ÇÏ¿´´Ù. Áï pInfo ¹è¿­Àº Å©±â 100À¸·Î, pUnit ¹è¿­Àº Å©±â 5·Î ÃʱâÈ­µÈ´Ù.

µÎ ¹è¿­ÀÇ Ãʱâ ÇÒ´ç·®Àº ¾îµð±îÁö³ª ÃʱⰪ¿¡ ºÒ°úÇÏ´Ù. ÁÙ ¼ö³ª À¯´Ö¼ö´Â ½ÇÇàÁß¿¡ ÇÊ¿äÇÑ ¸¸Å­ ÀçÇÒ´çµÇ¹Ç·Î óÀ½ºÎÅÍ Å©°Ô ÇÒ´çÇÒ ÇÊ¿ä°¡ ¾øÀ¸¸ç Àû´çÇÑ Å©±â¸¸Å­¸¸ ÇÒ´çÇÏ¸é µÈ´Ù. ÁÙ ¼ö¸¦ 100À¸·Î ÀâÀº °ÍÀº Ưº°ÇÑ Àǹ̴ ¾øÀ¸¸ç ±×³É ´Ü¼øÇÑ ÀÓÀÇÀÇ °ªÀÌ´Ù. À¯´ÖÀÇ Ãʱâ Å©±â 5´Â »ó´çÈ÷ ½É»ç¼÷°í ³¡¿¡ °áÁ¤ÇÑ °ÍÀε¥ ÀÌ °ªÀÌ ³Ê¹« Å©¸é ¸Þ¸ð¸®°¡ ³¶ºñµÉ ¼ö ÀÖÀ¸¸ç ³Ê¹« ÀÛÀ¸¸é ÀçÇÒ´çÀÌ ºó¹øÇØÁ®¼­ ´À·ÁÁú ¼ö ÀÖ´Ù. ´ëºÎºÐÀÇ ¹®¼­¿¡¼­ ½ºÅ¸ÀÏÀÌ 5¹ø ¹Ù²ð Á¤µµ¸é ºñ±³Àû ÃæºÐÇÑ °Í °°¾Æ 5·Î °áÁ¤Çß´Ù. ¸¸¾à ¸Þ¸ð¸®¸¦ Á» ´õ ¾²´õ¶óµµ ¼Óµµ¸¦ ³ôÀÌ°í ½Í´Ù¸é ÀÌ °ªÀ» Á» ´õ Å©°Ô Àâ¾Æ ÁÖ¸é µÈ´Ù.

¸Þ¸ð¸® ÇÒ´ç ÈÄ À¯´ÖÀÇ pos, style ¸â¹ö´Â ¸ðµÎ -1·Î ÃʱâÈ­ÇÏ¿´´Ù. À§Ä¡°ªÀÎ pos°¡ -1À» °¡Áö´Â °ÍÀº ¾ÆÁ÷ ºÐ¼®µÇÁö ¾ÊÀº Á¤º¸¶ó´Â ¶æÀ¸·Î Á¤ÀÇÇÑ´Ù. Context ¸â¹ö´Â ¸ðµÎ 0À¸·Î ÃʱâÈ­ÇÏ¿© Ưº°ÇÑ ÄÁÅؽºÆ®¸¦ °¡ÁöÁö ¾Êµµ·Ï ÇÏ¿´´Ù. InitInfo ÇÔ¼ö¿¡ ÀÇÇØ pInfo ¹è¿­Àº ´ÙÀ½ ±×¸²Ã³·³ ÃʱâÈ­µÈ´Ù.

°³³äÀûÀ¸·Î´Â 2Â÷¿ø ¹è¿­°ú °ÅÀÇ ºñ½ÁÇÑ ¸ð¾çÀÌ´Ù. ¼öÁ÷À¸·Î 100ÁÙÀÇ ±æÀ̸¦ °¡Áö¸ç ÇÑ ÁÙ¿¡ ´Ù¼¸ °³ÀÇ ½ºÅ¸ÀÏÀ» ÀúÀåÇÒ ¼ö ÀÖ´Â ¿ë·®ÀÌ´Ù. ¹®¼­ÀÇ ¹®¹ýÀÌ º¹ÀâÇØÁö¸é ÀÌ ¹è¿­ÀÌ ¼öÆòÀ¸·Î È®ÀåµÉ °ÍÀÌ¸ç ¹®¼­ÀÇ ±æÀÌ°¡ ±æ¾îÁö¸é ¼öÁ÷À¸·Î È®ÀåµÉ °ÍÀÌ´Ù.

InitInfo ÇÔ¼ö´Â »ý¼ºÀÚ¿Í Æı«ÀÚ¿¡¼­ °¢°¢ È£ÃâµÇ´Âµ¥ ±× Àǹ̴ ´Ù¸£´Ù. »ý¼ºÀÚ´Â pInfo¸¦ NULL·Î ÃʱâÈ­ÇÑ ÈÄ InitInfo(TRUE)¸¦ È£ÃâÇϹǷΠ¸Þ¸ð¸®¸¦ ÇØÁ¦ÇÏÁö´Â ¾Ê°í Ãʱâ ÇҴ縸 ÇÑ´Ù. ¹Ý¸é Æı«ÀÚ´Â InitInfo(FALSE)¸¦ È£ÃâÇϹǷΠ¸Þ¸ð¸®¸¦ ÇØÁ¦Çϱ⸸ ÇÏ°í ÀçÇÒ´çÀº ÇÏÁö ¾Ê´Â´Ù. Áï InitInfo ÇÔ¼ö´Â bAlloc ÀμöÀÇ °ª¿¡ µû¶ó ÇØÁ¦¿Í ÃʱâÈ­¸¦ µ¿½Ã¿¡ ¼öÇàÇÏ´Â ÇÔ¼öÀÌ´Ù.

ºÐ¼® Á¤º¸ ÀÛ¼º

ÇÔ¼öÀ̸§À» º¸¸é ¾Ë°ÚÁö¸¸ ºÐ¼® Á¤º¸¸¦ ÀÛ¼ºÇÏ´Â ÀÏÀº MakeParseInfo ÇÔ¼ö°¡ ÇÑ´Ù. ÀÌ ÇÔ¼ö´Â 4°³ÀÇ Àμö¸¦ Àü´Þ¹Þ´Âµ¥ nLineÀÌ ÁÙ¹øÈ£ÀÌ°í nUnitÀº À¯´ÖÀÇ ¹øÈ£ÀÌ´Ù. pInfo¸¦ 2Â÷¿ø ¹è¿­À̶ó°í ÇÒ ¶§ nLineÀº ¹è¿­ÀÇ y ÁÂÇ¥°ªÀÌ°í nUnitÀº ¹è¿­ÀÇ x ÁÂÇ¥¿¡ ÇØ´çÇÑ´Ù. ºÐ¼® Á¤º¸¸¦ ÀÛ¼ºÇÑ ÈÄ¿¡ À¯´Ö ¹øÈ£´Â ÇÑ Ä­ µÚ·Î À̵¿ÇØ¾ß ÇϹǷΠnUnitÀº ·¹ÆÛ·±½º·Î Àü´Þ¹Þ´Â´Ù.

³ª¸ÓÁö µÎ °³ÀÇ Àμö pos, styleÀº ½ÇÁ¦ ºÐ¼® Á¤º¸¿¡ ÇØ´çÇÏ´Â ¿ÀÇÁ¼Â, ½ºÅ¸ÀÏ°ªÀÌ´Ù. MakeParseInfo ÇÔ¼ö°¡ ÇÏ´Â °¡Àå Áß¿äÇÑ ÀÏÀº ÀÌ µÎ °ªÀ» pInfo.pUnit¿¡ ±â·ÏÇÏ´Â °ÍÀÌ¸ç ´ÙÀ½ µÎ ÁÙÀÌ ÇÙ½É ÄÚµåÀÌ´Ù.

 

void CParse::MakeParseInfo(int nLine, int &nUnit, int pos, int style)

{

     ....

     pInfo[nLine].pUnit[nUnit].pos=pos;

     pInfo[nLine].pUnit[nUnit].style=style;

}

 

Àμö·Î Àü´ÞµÈ °ªÀ» pUnit ¹è¿­¿¡ ±â·ÏÇÑ´Ù. ÀÌ µÎ ÁÙÀÇ ¾Õ¿¡ ÀÖ´Â ³ª¸ÓÁö ÄÚµå´Â ¸Þ¸ð¸®°ü¸®¿Í Áߺ¹ Á¤º¸ ¹æÁö ÄÚµåÀÌ´Ù. pInfo ¹è¿­Àº µ¿ÀûÀ¸·Î ÇÒ´çµÇ±â ¶§¹®¿¡ nLine ÁÙ°ú nUnit À¯´ÖÀÌ Ç×»ó Á¸ÀçÇÑ´Ù´Â º¸ÀåÀÌ ¾ø´Ù. nLine ÁÙÀÌ ¾øÀ¸¸é ÀçÇÒ´çÇØ¾ß Çϴµ¥ ÀÌ ÀÛ¾÷Àº MakeParseInfo ÇÔ¼ö¸¦ È£ÃâÇϴ ȣÃâÃø¿¡¼­ ÇϹǷΠnLineÀº Ç×»ó À¯È¿ÇÏ´Ù.

±×·¯³ª nUnitÀº ÀÖÀ» ¼öµµ ÀÖ°í ¾øÀ» ¼öµµ ÀÖ´Ù. pUnitÀº ÃÖÃÊ 5ÀÇ Å©±â·Î ÇÒ´çµÇ¹Ç·Î pUnit ¹è¿­Àº pUnit[4]±îÁö¸¸ À¯È¿ÇÏ´Ù. ÀÌ »óÅ¿¡¼­ nUnitÀÌ 5°¡ µÇ¸é pUnit ¹è¿­À» ÀçÇÒ´çÇÏ¿© ´Ã·Á¾ß ÇÑ´Ù. MakeParseInfo ÇÔ¼ö´Â ºÐ¼® Á¤º¸¸¦ pInfo¿¡ ±â·ÏÇϱâ Àü¿¡ nUintÀ» ±â·ÏÇÒ °ø°£ÀÌ ÀÖ´ÂÁö ¸ÕÀú Á¶»çÇÏ°í ¾øÀ¸¸é pUnitÀÇ Å©±â¸¦ Çϳª ´õ ´Ã·Á ÀçÇÒ´çÇÑ´Ù. ¹è¿­ÀÇ Å©±â°¡ À۱⠶§¹®¿¡ ¿©À¯ºÐÀº ÁÖÁö ¾Ê¾Ò´Ù.

ÇÔ¼öÀÇ ¼±µÎ¿¡ ÀÖ´Â ´ÙÀ½ ÄÚµå´Â ¾à°£ÀÇ ¼³¸íÀÌ ÇÊ¿äÇÏ´Ù. ÀÌ ÄÚµå´Â Áߺ¹µÈ Á¤º¸¸¦ ÀÛ¼ºÇÏÁö ¾Êµµ·Ï ÇÏ´Â µÎ °¡Áö Á¶°Ç Á¡°ËÀ» ÇÏ°í ÀÖ´Ù.

 

     if (nUnit > 0) {

          if (pInfo[nLine].pUnit[nUnit-1].pos == pos) {

              nUnit--;

          } else

          if (pInfo[nLine].pUnit[nUnit-1].style == style) {

              return;

          }

     }

 

ù ¹ø° Á¶°ÇÀº ÇöÀç ÀÛ¼ºÇÏ´Â À¯´Ö°ú ÀÌÀü À¯´ÖÀÇ À§Ä¡°¡ °°À¸¸é ÀÌÀü À¯´ÖÀ» »èÁ¦ÇÏ´Â ¿ªÇÒÀ» ÇÑ´Ù. n¹ø° À¯´Ö°ú n-1¹ø° À¯´ÖÀÇ À§Ä¡°¡ °°´Ù´Â ¸»À» n-1¹ø° À¯´ÖÀÇ ±æÀÌ°¡ 0À̶ó´Â ¶æÀ̸ç ÀÌ À¯´ÖÀº Á¸ÀçÇÒ ÇÊ¿ä°¡ ¾øÀ¸¹Ç·Î »èÁ¦µÇ¾î¾ß ÇÑ´Ù. ºÐ¼®±â´Â ÁÙÀÇ ºÐ¼®À» ½ÃÀÛÇϱâ Àü¿¡ Ç×»ó º¸Åë ¹®ÀÚ¿­ À¯´ÖÀ» pUnit[0]¿¡ ¹èÄ¡ÇÏ¿© ºÐ¼® Á¤º¸¸¦ ÃʱâÈ­ÇÑ ÈÄ Å°¿öµå³ª ÁÖ¼® µîÀ» ã´Â´Ù. ±×·¯´Ù º¸´Ï ´ÙÀ½°ú °°Àº ºÐ¼® Á¤º¸°¡ ¸¸µé¾îÁú ¼ö ÀÖ´Ù.

 

pUnit[0] : ¿ÀÇÁ¼Â 0ºÎÅÍ º¸Åë ¹®ÀÚ¿­

pUnit[1] : ¿ÀÇÁ¼Â 0ºÎÅÍ Å°¿öµå

pUnit[2] : ¿ÀÇÁ¼Â 5ºÎÅÍ º¸Åë ¹®ÀÚ¿­

pUnit[3] : ¿ÀÇÁ¼Â 5ºÎÅÍ ÁÖ¼®

 

º¸´Ù½ÃÇÇ pUnit[0]¿Í pUnit[2]´Â ±æÀÌ°¡ 0À̹ǷΠºÒÇÊ¿äÇÏ°Ô °ø°£¸¸ ³¶ºñÇÏ°í ÀÖ´Â °ÍÀÌ´Ù. ¹°·Ð À־ °á±¹ È­¸éÃâ·ÂÀº µÇÁö ¾Ê±â ¶§¹®¿¡ ¹«ÇØÇÏÁö¸¸ Ãâ·Â¼Óµµ¿¡µµ ºÒ¸®ÇÏ°í ¸Þ¸ð¸®¸¦ Á»¸Ô´Â ÀÌ·± À¯´ÖÀ» ±×´ë·Î ³»¹ö·Á µÑ ÇÊ¿ä°¡ ¾ø´Ù. À̶§ nUnitÀ» 1°¨¼Ò½ÃÄÑ »õ·Î ÀÛ¼ºµÇ´Â À¯´ÖÀÌ ÀÌÀü À¯´ÖÀ» µ¤¾î¾²µµ·Ï ÇÏ¿´´Ù.

µÎ ¹ø° Á¶°ÇÀº ÇöÀç ÀÛ¼ºÇÏ´Â À¯´Ö°ú ÀÌÀü À¯´ÖÀÌ °°Àº ½ºÅ¸ÀÏÀÌ¸é µÎ À¯´ÖÀ» ÅëÇÕÇÑ´Ù. ´ÙÀ½°ú °°Àº °æ¿ìÀÌ´Ù.

 

pUnit[0] : ¿ÀÇÁ¼Â 0ºÎÅÍ º¸Åë ¹®ÀÚ¿­

pUnit[1] : ¿ÀÇÁ¼Â 1ºÎÅÍ Å°¿öµå

pUnit[2] : ¿ÀÇÁ¼Â 5ºÎÅÍ Å°¿öµå

pUnit[3] : ¿ÀÇÁ¼Â 30ºÎÅÍ ÁÖ¼®

 

pUnit[1]°ú pUnit[2]´Â ½ºÅ¸ÀÏÀÌ °°À¸¹Ç·Î ÅëÇÕÇÒ ¼ö ÀÖÀ¸¸ç »ç½Ç»ó pUnit[2]´Â ÀüÇô ºÒÇÊ¿äÇÑ Á¸ÀçÀÌ´Ù. ±×·¡¼­ ÀÌ·± °æ¿ì´Â ¾Æ¿¹ ºÐ¼® Á¤º¸¸¦ ÀÛ¼ºÇÏÁö ¾Ê´Â´Ù. pUnit[1]¸¸ À־ ¿ÀÇÁ¼Â1ºÎÅÍ ´ÙÀ½ À¯´ÖÀÇ À§Ä¡ÀÎ ¿ÀÇÁ¼Â 30±îÁö°¡ Å°¿öµå¶ó´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. ¹°·Ð pUnit[2]¸¦ ±×³É ³»¹ö·Á µÎ¾îµµ µÎ ¹ø ³ª´©¾î Ãâ·ÂµÉ »ÓÀÌÁö ÀÌ»óÇÏ°Ô µ¿ÀÛÇÏ´Â °ÍÀº ¾Æ´Ï´Ù.

µÎ Á¶°Ç ¸ðµÎ ÃÖ¼ÒÇÑ ÇϳªÀÇ À¯´ÖÀº ÀÛ¼ºµÇ¾î ÀÖ´Â »óÅ¿¡¼­¸¸ Á¡°ËÇÒ ¼ö ÀÖÀ¸¹Ç·Î if (nUnit > 0) Á¶°Ç ºí·Ï¿¡ ½Î¿© ÀÖ´Ù. ÀÌ ÇÔ¼ö¿¡¼­ Áߺ¹ Á¤º¸¸¦ ¹æÁöÇÏ´Â ¼­ºñ½º¸¦ ÇÏ°í Àֱ⠶§¹®¿¡ ºÐ¼®±â´Â ¹«¾ùÀΰ¡ ¹ß°ßµÇ´Â Á·Á· ÀÌ ÇÔ¼ö¸¦ ºÒ·¯ Áֱ⸸ ÇÏ¸é µÈ´Ù. ÀÌ µÎ Á¶°Ç Á¡°ËÀº ´©±º°¡°¡ ¹Ýµå½Ã ÇØ¾ß Çϴµ¥ CParse ºÎ¸ð Ŭ·¡½º°¡ Ã¥ÀÓÁö°í ÇϹǷΠÆÄ»ý ºÐ¼®±âÀÇ ºÐ¼® Äڵ尡 °£´ÜÇØÁø´Ù.

ºÐ¼® Á¤º¸ »èÁ¦

ºÐ¼® Á¤º¸¸¦ »èÁ¦ÇÑ´Ù´Â °ÍÀº ºÐ¼®µÈ °á°ú¸¦ ¹«È¿È­ÇÑ´Ù´Â ¶æÀÌ´Ù. ¹®¼­°¡ Á¶±ÝÀÌ¶óµµ ÆíÁýµÇ¸é ÆíÁýµÈ À§Ä¡ ÀÌÈÄÀÇ ³»¿ë¿¡ ´ëÇؼ­´Â ´Ù½Ã ±¸¹® ºÐ¼®À» ÇØ¾ß ÇÑ´Ù. ±×·¸´Ù°í Çؼ­ ÆíÁýµÈ Áï½Ã ±¸¹® ºÐ¼®À» ´Ù½Ã ÇÒ ÇÊ¿ä´Â ¾øÀ¸¸ç ºÐ¼® Á¤º¸¸¦ ¹«È¿È­½ÃÄÑ ³õ±â¸¸ ÇÏ¸é µÈ´Ù. ApiEdit´Â È­¸é¿¡ Ãâ·ÂÇϱâ Àü¿¡ ¹«È¿ÇÑ ºÐ¼® Á¤º¸¸¦ À¯È¿ÇÏ°Ô ¸¸µç ÈÄ, Áï ÀçºÐ¼®ÇÑ ÈÄ Ãâ·ÂÇϵµ·Ï µÇ¾î ÀÖ´Ù. ºÐ¼® Á¤º¸¸¦ »èÁ¦ÇÏ´Â °ÍÀº °ð ¡®ÀÌÈÄÀÇ ³»¿ë¿¡ ´ëÇؼ­´Â ±¸¹® ºÐ¼®À» ´Ù½Ã Ç϶󡯴 ¸í·ÉÀ» pInfo¿¡ ³²°Ü ³õ´Â °ÍÀÌ´Ù.

ºÐ¼® Á¤º¸ »èÁ¦´Â DeleteParseInfo ÇÔ¼ö¿¡¼­ ÇÑ´Ù. nLine Àμö·Î ÁÙ¹øÈ£¸¦ ¹Þ´Âµ¥ ÀÌ ÁÙ ÀÌÈÄÀÇ ¸ðµç ºÐ¼® Á¤º¸¸¦ »èÁ¦ÇÏ¿© ¹«È¿È­ÇÑ´Ù. Åë»ó ÆíÁýÀÌ ÀϾ ÁÙ¹øÈ£°¡ nLineÀ¸·Î Àü´ÞµÇ¸ç ±× ÁÙ ÀÌÈĸ¦ ´Ù½Ã ºÐ¼®Çϵµ·Ï ÇÑ´Ù.

ºÐ¼® Á¤º¸¸¦ »èÁ¦ÇÏ´Â °ÍÀº ¾ÆÁÖ °£´ÜÇÏ´Ù. nLineºÎÅÍ ½ÃÀÛÇؼ­ pInfoÀÇ ³¡±îÁö ¶Ç´Â ºÐ¼® Á¤º¸°¡ ÀÌ¹Ì »èÁ¦µÇ¾î ÀÖ´Â ÁÙ±îÁö ·çÇÁ¸¦ µ¹¸ç pUnitÀÇ pos¸¦ ¸ðµÎ -1·Î ¹Ù²ã ³õÀ¸¸é µÈ´Ù. pos°¡ -1°ªÀ» °¡Áö´Â °ÍÀº ¾ÆÁ÷ ºÐ¼®µÇÁö ¾Ê¾Ò´Ù´Â ¶æÀ» °¡Áöµµ·Ï Á¤ÀǵǾî ÀÖ´Ù. pos¸¸ -1·Î ¹Ù²Ù¸ç ÇÒ´çµÇ¾î ÀÖ´Â ¸Þ¸ð¸®±îÁö ÇØÁ¦ÇÒ ÇÊ¿ä´Â ¾ø´Ù. ¿Ö³ÄÇÏ¸é ¹«È¿È­µÈ ÁÙÀ» ÀçºÐ¼®ÇÏ¸é °á±¹ ±× ¸Þ¸ð¸®°¡ ¶Ç ÇÊ¿äÇϱ⠶§¹®ÀÌ´Ù.

¹®¼­ ºÐ¼® ¹× ºÐ¼® Á¤º¸ ¹è¿­ ÀçÇÒ´ç

ParseLines ÇÔ¼ö´Â ¿ÜºÎ¿¡¼­ º¼ ¶§ ¹®¼­¸¦ ºÐ¼®ÇÏ´Â ÁÖüÀ̸ç Àμö·Î Àü´ÞµÈ nLine ÁÙ±îÁö ºÐ¼®À» ÇÑ´Ù. ±×·¯³ª Á÷Á¢ ¹®¼­ ºÐ¼®À» ÇÏ´Â °ÍÀº ¾Æ´Ï¸ç ºÐ¼®À» À§ÇÑ Áغñ¸¸ ÇÏ°í °¢ ÁÙº°·Î ºÐ¼® ÇÔ¼ö¸¦ È£ÃâÇÒ »ÓÀÌ´Ù. ÇÏÁö¸¸ ÀÌ ÇÔ¼ö¿¡ ÀÇÇØ ºÐ¼® Á¤º¸°¡ ÀÛ¼ºµÇ¹Ç·Î ApiEdit´Â ¹®¼­ ºÐ¼®ÀÌ ÇÊ¿äÇÒ ¶§ ÀÌ ÇÔ¼ö¸¦ È£ÃâÇϱ⸸ Çϸé nLine±îÁö ¿ÏÀüÈ÷ ºÐ¼®µÈ »óÅ°¡ µÈ´Ù. Áï ÀÌ ÇÔ¼ö´Â ¹®¼­ ºÐ¼®ÀÇ ½ÃÀÛÁ¡À̸鼭 ¿ÜºÎ¿Í Åë½ÅÇÏ´Â °¡Àå Áß¿äÇÑ ÀÎÅÍÆäÀ̽º ÇÔ¼öÀÌ´Ù.

ParseLines ÇÔ¼ö°¡ ÇÏ´Â °¡Àå Áß¿äÇÑ ÀÏÀº ºÐ¼® Á¤º¸ ¹è¿­À» °ü¸®ÇÏ´Â °ÍÀÌ´Ù. pInfo ¹è¿­ÀÇ Ãʱâ Å©±â 100Àº ´ëºÎºÐÀÇ ¹®¼­¿¡¼­ ºÎÁ·ÇÑ Å©±âÀÌ´Ù. ±×·¯³ª ÇÊ¿äÇÒ ¶§ ¹è¿­Å©±â¸¦ ´Ã¸± ¼ö Àֱ⠶§¹®¿¡ Å©±â°¡ ÀÛ´Ù°í Çؼ­ ¹®Á¦°¡ µÇÁö´Â ¾Ê´Â´Ù. ºÐ¼®±â´Â ¹®¼­¸¦ ºÐ¼®Çϸ鼭 Ç×»ó ÇöÀç ÇÒ´çµÈ ¹è¿­Å©±âÀÎ ParseSize°¡ ÀÛÁö ¾ÊÀºÁö Á¡°ËÇÏ°í ÀÛÀ¸¸é ÇÊ¿äÇÑ ¸¸Å­ Å©±â¸¦ ´Ã¸°´Ù. ¿¹¸¦ µé¾î pInfo°¡ 100ÁÙ±îÁö ÇÒ´çµÇ¾î ÀÖ´Â »óÅ¿¡¼­ 105¹ø° ÁÙÀÇ ºÐ¼® Á¤º¸¸¦ ÀÛ¼ºÇÑ´Ù¸é ÀÌ Å©±â¸¦ 105³ª 120Á¤µµÀÇ ÃæºÐÇÑ Å©±â·Î ´Ã¸± ¼ö ÀÖ´Ù.

¹è¿­ÀÇ °ø°£ÀÌ ¾ðÁ¦ ºÎÁ·ÇÒÁö ¾Ë ¼ö ¾øÀ¸¹Ç·Î ÀÌ ÀÛ¾÷Àº ºÐ¼® Á¤º¸¸¦ ÀÛ¼ºÇÒ ¶§¸¶´Ù ¸Å¹ø ÇØ¾ß Çϴµ¥ ¸ðµç ºÐ¼® ·çƾ¿¡¼­ ÀÌ ÀÛ¾÷À» Çϱâ´Â ¹«Ã´ ¹ø°Å·Ó´Ù. ¾Æ¸¶ Á¤º¸¸¦ ÀÛ¼ºÇÏ´Â Äڵ庸´Ù ¸Þ¸ð¸®¸¦ °ü¸®ÇÏ´Â Äڵ尡 ´õ ¸¹¾ÆÁú °ÍÀÌ´Ù. ±×·¡¼­ ºÐ¼®À» ½ÃÀÛÇÏ´Â ½ÃÁ¡ÀÎ ÀÌ ÇÔ¼öÀÇ ¼±µÎ¿¡¼­¸¸ ¹è¿­À» °ü¸®ÇÑ´Ù. ¸ðµç ºÐ¼® °ü·Ã ÇÔ¼ö°¡ È£ÃâµÇ±â Àü¿¡ ÀÌ ÇÔ¼ö°¡ ¸ÕÀú È£ÃâµÇ¹Ç·Î ¿©±â¼­ ¹è¿­À» ÃæºÐÇÏ°Ô ÇÒ´çÇسõ±â¸¸ ÇÏ¸é ³ª¸ÓÁö ÄÚµå´Â ¾È½ÉÇÏ°í pInfo ¹è¿­À» »ç¿ëÇÒ ¼ö ÀÖ´Ù.

¸¸¾à ParseSize°¡ nLineº¸´Ù À۰ųª °°´Ù¸é pInfo ¹è¿­Àº nLineÀÌ»óÀÇ Å©±â¸¦ °¡Áöµµ·Ï ÀçÇÒ´çÇÑ´Ù. ÀÛÀ» ¶§»Ó¸¸ ¾Æ´Ï¶ó °°À» ¶§µµ ÀçÇÒ´çÀ» ÇØ¾ß ÇÔÀ» À¯ÀÇÇϵµ·Ï ÇÏÀÚ. ¿Ö³ÄÇϸé nLineÀº Zero BaseÀÇ ¹è¿­ ÷ÀÚÀε¥ ºñÇØ ParseSize´Â One BaseÀÇ ¹è¿­Å©±âÀ̱⠶§¹®ÀÌ´Ù. nLineÀÌ 100ÀÏ ¶§ Áï 100¹ø ÁÙÀÇ ºÐ¼® Á¤º¸¸¦ ±â·ÏÇÏ°í ÀÖ´Ù°í Çغ¸ÀÚ. À̶§ ParseSize°¡ 100À̶ó¸é pInfo´Â 99±îÁö¸¸ ÇÒ´çµÇ¾î ÀÖ´Â »óÅÂÀ̹ǷΠÀ̶§µµ ¹è¿­À» ÀçÇÒ´çÇÏ¿© pInfo[100]ÀÌ Á¸ÀçÇϵµ·Ï ÇØ¾ß ÇÑ´Ù.

¹è¿­ Å©±â¸¦ ´Ã¸± ¶§ nLine¸¸Å­ Á¤È®ÇÏ°Ô Å©±â¸¦ ´Ã¸®´Â °ÍÀÌ ¾Æ´Ï¶ó ¹Ì¸® 100ÁÙ¸¸Å­ÀÇ ¿©À¯ºÐÀ» ÁÖ¾î ÃæºÐÇÑ Å©±â·Î ´Ã·Á ÁÖµµ·Ï ÇÏ¿© ÀçÇÒ´ç Ƚ¼ö¸¦ ÃÖ¼ÒÈ­Çϵµ·Ï ÇÏ¿´´Ù. ÀÌ·± ±â¹ýÀº ¾Õ¿¡¼­µµ ¸¹ÀÌ ¼±º¸ÀÎ ÀûÀÌ ÀÖÀ¸¹Ç·Î ÀÌÁ¦ ¾ÆÁÖ Àͼ÷ÇÒ °ÍÀÌ´Ù. ParseSize¸¦ nLine+100À¸·Î º¯°æÇÏ°í ÀÌ Å©±â¸¸Å­ pInfo ¹è¿­À» ÀçÇÒ´çÇÏ¿´À¸¸ç »õ·Î Ãß°¡µÈ ÁÙ¿¡ ´ëÇØ pUnitµµ »õ·Î ÇÒ´çÇÏ¿´´Ù. ParseLines ÇÔ¼ö´Â ºÐ¼® ·çƾ¿¡¼­ ÇÊ¿ä·Î ÇÏ´Â nLine ÁÙÀÌ ¹Ýµå½Ã pInfo ¹è¿­¿¡ Á¸ÀçÇϵµ·Ï º¸ÀåÇÏ´Â ¿ªÇÒÀ» ÇÑ´Ù.

ºÐ¼®À» ½ÃÀÛÇϱâ Àü¿¡ ÀÌ¹Ì ºÐ¼®µÇ¾î ÀÖ´Â ÁÙÀÎÁö¸¦ ¸ÕÀú Á¡°ËÇغ¸°í ºÐ¼®µÇ¾î ÀÖÀ¸¸é ±×³É ¸®ÅÏÇÑ´Ù. nLine ÁÙÀÇ Ã¹ ¹ø° À¯´ÖÀÇ pos°¡ -1ÀÌ ¾Æ´Ï¶ó¸é ÀÌ ÁÙ±îÁö ºÐ¼®ÀÌ µÇ¾î ÀÖ´Â °ÍÀ¸·Î ÆÇ´ÜÇÒ ¼ö ÀÖ´Ù. È£½ºÆ®´Â ¹«Á¶°Ç ÀÌ ÇÔ¼ö¸¦ È£ÃâÇϵµ·Ï µÇ¾î ÀÖÀ¸¹Ç·Î ¹Ýµå½Ã ºÐ¼® ¿Ï·á ¿©ºÎ¸¦ Á¡°ËÇغ¸¾Æ¾ß ÇÑ´Ù. º¯È­°¡ ¾ø´Â ¹®¼­¸¦ ´Ù½Ã ±×¸®±â¸¸ ÇÑ´Ù¸é ºÐ¼® Á¤º¸´Â À¯È¿ÇϹǷΠÀçºÐ¼®ÇÒ ÇÊ¿ä°¡ ¾ø´Ù.

¹è¿­ °ü¸®¿Í ºÐ¼® ¿Ï·á Á¡°Ë ÈÄ ºÐ¼® ´ë»ó ÁÙÀ» °è»êÇϴµ¥ ºÐ¼®ÇÒ ³¡ ÁÙÀº Àμö·Î Àü´ÞµÈ nLineÀÌ¸ç ºÐ¼®ÀÇ ½ÃÀÛÁÙÀº µû·Î ã¾Æ¾ß ÇÑ´Ù. nLine¿¡¼­ ½ÃÀÛÇÏ¿© À§·Î ¿Ã¶ó°¡¸é¼­ ºÐ¼®µÇÁö ¾ÊÀº ù ÁÙÀ» ã´Â´Ù. ÀÌ ÁÙÀº ¹®¼­°¡ º¯°æµÈ ¿ÀÇÁ¼ÂÀÇ ½ÃÀÛ ¹®´ÜÁÙÀε¥ È­¸é»óÀÇ Ã¹ ÁÙÀÏ ¼öµµ ÀÖ°í È­¸é»óÀÇ Áß°£ÂëÀÏ ¼öµµ ÀÖ°í ¹®¼­ÀÇ Ã³À½ÀÎ 0¹ø° ÁÙÀÏ ¼öµµ ÀÖ´Ù. ±¸¹® ºÐ¼®Àº Ç×»ó ÀÌÀü ÁÙÀÇ ÄÁÅؽºÆ®¸¦ ÂüÁ¶ÇØ¾ß ÇϹǷΠnLineº¸´Ù ¾Õ¿¡ ÀÖ´Â ÁÙÀº ¸ðµÎ °°ÀÌ ºÐ¼®µÇ¾î¾ß ÇÑ´Ù.

±×·¡¼­ ¼³»ç ºÐ¼® ½ÃÀÛÁÙÀÌ È­¸é»ó¿¡ º¸ÀÌÁö ¾Ê´Â´Ù ÇÏ´õ¶óµµ ±× ÁÙºÎÅÍ ºÐ¼®À» ÇØ ¿Í¾ß ÇÑ´Ù. for ·çÇÁ¿¡¼­ nLineºÎÅÍ ½ÃÀÛÇÏ¿© ù ¹ø° À¯´ÖÀÌ -1ÀÌ ¾Æ´Ñ ù ÁÙÀ» ã°í ±× ´ÙÀ½ ÁÙÀ» ÃëÇϸé ÀÌ ÁÙÀÌ ¹Ù·Î ºÐ¼®µÇÁö ¾ÊÀº ù ¹ø° ÁÙÀÌ´Ù. ºÐ¼®ÇÒ Ã¹ ¹ø° ÁÙ lÀÌ °áÁ¤µÇ¸é l~nLine±îÁö ·çÇÁ¸¦ µ¹¸ç ParseLine ÇÔ¼ö¸¦ È£ÃâÇÏ¿© °¢ ÁÙÀ» °³º°ÀûÀ¸·Î ºÐ¼®ÇÑ´Ù. ÀÌ ÇÔ¼ö°¡ ÁøÂ¥ ºÐ¼®À» ÇÏ´Â ÁÖüÀÌ¸ç ·çÇÁ¸¦ ¸ðµÎ µ¹¾ÒÀ» ¶§´Â nLine±îÁö ºÐ¼®ÀÌ ¿Ï·áµÇ¾î ÀÖÀ» °ÍÀÌ´Ù.

¹®ÀÚ¿­ Á¡°Ë

IsStringExist ÇÔ¼ö´Â ºÐ¼®±âÀÇ ±¸¹® ºÐ¼®À» º¸Á¶ÇÏ´Â ¿ªÇÒÀ» ÇÑ´Ù. °¢ ¹®¹ýµéÀº Å°¿öµå, ÇÔ¼ö, ű×, ¿¬»êÀÚ µîÀÇ °íÀ¯ÇÑ ±¸¼º ¿ä¼ÒµéÀ» °¡Áö´Âµ¥ ÀÌ ¿ä¼ÒµéÀº ¹®¹ý¿¡ ¹Ì¸® Á¤ÀÇµÈ ¹®ÀÚ¿­ Áß Çϳª¿©¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î HTML ű״ table, body, img µîÀÌ Àִµ¥ Áö±Ý ºÐ¼®ÇÏ°í ÀÖ´Â ºÎºÐÀÌ ÀÌ Áß ÇϳªÀÎÁö Á¶»çÇØ¾ß ÇÑ´Ù. ¾î¶² ¹®ÀÚ¿­ÀÌ ¹®ÀÚ¿­ ¸ñ·Ï Áß Çϳª¿¡ ¼ÓÇÏ´ÂÁö ¾Æ´ÑÁö¸¦ Á¡°ËÇÏ´Â °ÍÀÌ ÀÌ ÇÔ¼öÀÇ ÁÖµÈ ¸ñÀûÀÌ´Ù.

list´Â ¹®ÀÚ¿­ ¸ñ·ÏÀ» °¡Áö´Âµ¥ °¢ ¹®ÀÚ¿­Àº °ø¹éÀ¸·Î ºÐ¸®µÇ¾î ÀÖ¾î¾ß ÇÑ´Ù. strÀº °Ë»çÇÒ ¹®ÀÚ¿­À̸ç lenÀº ¹®ÀÚ¿­ÀÇ ±æÀÌÀÌ´Ù. bCase´Â ´ë¼Ò¹®ÀÚ¸¦ ±¸ºÐÇؼ­ °Ë»çÇÒ °ÍÀΰ¡ ¾Æ´Ñ°¡¸¦ ÁöÁ¤ÇÑ´Ù. C ¾ð¾î´Â ´ë¼Ò¹®ÀÚ¸¦ ±¸ºÐÇϸç HTMLÀ̳ª º£ÀÌÁ÷ °°Àº ¹®¹ýÀº ´ë¼Ò¹®ÀÚ¸¦ ±¸ºÐÇÏÁö ¾Ê´Â´Ù. ºÐ¼®±â´Â °Ë»çÇÏ°íÀÚ ÇÏ´Â ¹®ÀÚ¿­ ¸ñ·ÏÀ» ÇϳªÀÇ ¹è¿­¿¡ ÀÛ¼ºÇسõ°í Áö±Ý ºÐ¼®ÇÏ°í ÀÖ´Â À§Ä¡ÀÇ ¹®ÀÚ¿­ÀÌ ÀÌ ¸ñ·Ï¿¡ ÀÖ´ÂÁö °Ë»çÇϱâ À§ÇØ ÀÌ ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù. ¿¹¸¦ µé¾î °úÀÏÀÇ À̸§À» ¸ñ·ÏÀ¸·Î Á¤ÀÇÇÑ´Ù°í ÇÏÀÚ.

 

TCHAR *list=" apple orange banana strawberry grape ";

 

ºÐ¼®ÇÏ°í ÀÖ´Â ¹®ÀÚ¿­ÀÌ ÀÌ Áß ÇϳªÀÎÁö Á¶»çÇÏ·Á¸é IsStringExist(list, str, 6, FALSE)¶ó°í È£ÃâÇÏ¸é µÈ´Ù. strÀÌ ¡®orange¡¯¶ó°í ÇßÀ» ¶§ ÀÌ ÇÔ¼ö°¡ ¾î¶»°Ô ¹®ÀÚ¿­À» ã´ÂÁö º¸ÀÚ. Àü´ÞµÈ °Ë»ö ¹®ÀÚ¿­ÀÇ ±æÀ̺¸´Ù 3¹ÙÀÌÆ® ´õ ±ä ¹öÆÛ¸¦ ÇÒ´çÇÏ°í ¹®ÀÚ¿­ÀÇ ¾çÂÊ¿¡ °ø¹é, ±×¸®°í ³¡¿¡ ³Î Á¾·á¹®ÀÚ¿­À» ¹èÄ¡ÇÑ´Ù. °Ë»ö ´ë»ó ¹®ÀÚ¿­Àº ´ÙÀ½°ú °°¾ÆÁø´Ù.

¾çÂÊ¿¡ °ø¹éÀ» µÎ´Â ÀÌÀ¯´Â ´Ù¸¥ ´Ü¾îÀÇ ÀϺθ¦ ãÁö ¾Êµµ·Ï Çϱâ À§Çؼ­ÀÌ´Ù. ¸¸¾à ÀÌ·¸°Ô ÇÏÁö ¾ÊÀ¸¸é berry´Â ¸ñ·Ï¿¡ ¾øÁö¸¸ strawberryÀÇ ÀϺο¡ ¼ÓÇØ ÀÖÀ¸¹Ç·Î ÀÌ ´Ü¾î°¡ ¸ñ·Ï¿¡ ÀÖ´Ù°í ¿ÀÆÇÀ» ÇÏ°Ô µÉ °ÍÀÌ´Ù. ´ë¼Ò¹®ÀÚ¸¦ ±¸ºÐÇÏÁö ¾Ê´Â´Ù¸é °Ë»ö ¹®ÀÚ¿­À» ¸ðµÎ ¼Ò¹®ÀÚ·Î ¹Ù²Û ÈÄ ºñ±³ÇÑ´Ù.

ÀÌ·¸°Ô Áغñ¸¦ ÇÑ ÈÄ ¸ñ·Ï¿¡¼­ strstr ÇÔ¼ö·Î °Ë»ö ´ë»ó ¹®ÀÚ¿­ÀÌ ÀÖ´ÂÁö ¾ø´ÂÁö¸¸ Á¶»çÇغ¸¸é µÈ´Ù. ÀÌ ÇÔ¼ö°¡ ÀÌ·± ½ÄÀ¸·Î ¹®ÀÚ¿­ Á¡°ËÀ» Çϱ⠶§¹®¿¡ ºÐ¼®±âµéÀº ¸ðµç ¹®ÀÚ¿­µéÀ» ¹Ýµå½Ã °ø¹éÀ¸·Î ºÐ¸®ÇØ¾ß ÇÑ´Ù. ½ÉÁö¾î ù ¹ø° ´Ü¾î¿Í ¸¶Áö¸· ´Ü¾îµµ ¾Õ µÚ·Î °ø¹éÀ» °¢°¢ ³Ö¾î¾ß ÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. ¸¸¾à ¡® apple ~¡¯ÀÇ Ã¹ °ø¹éÀ» ¾ø¾Ö°í ¡®apple~¡¯·Î ±â·ÏÇسõÀ¸¸é appleÀº ÀÌ ¸ñ·Ï¿¡ ¾ø´Â °ÍÀ¸·Î Ãë±ÞµÇ¾î ¹ö¸°´Ù.

ÀÌ ÇÔ¼ö´Â °á±¹ strstr ÇÔ¼ö·Î ¸ñ·Ï³»ÀÇ ¹®ÀÚ¿­ Á¸Àç ¿©ºÎ¸¦ Á¶»çÇϸç ÀÌ ÇÔ¼ö°¡ Á¦´ë·Î ¸ñ·ÏÀ» °Ë»öÇÒ ¼ö ÀÖµµ·Ï Çϱâ À§ÇØ ÇÊ¿äÇÑ Ã¶ÀúÇÑ Áغñ¸¦ ÇÏ°í ÀÖ´Ù. ÀÌ ¹æ¹ý ¿Ü¿¡ ¸ðµç ¹®ÀÚ¿­À» ¾ËÆĺª¼øÀ¸·Î Á¤·ÄÇÑ »óÅ·Π¹®ÀÚ¿­ ¹è¿­À» ¸¸µç ÈÄ À̺Р°Ë»öÀ» ÇÏ´Â ¹æ¹ýµµ Àִµ¥ ¸ñ·ÏÀÌ Ä¿Áú¼ö·Ï À̺Р°Ë»öÀÇ ¼Óµµ°³¼± È¿°ú°¡ ¶Ñ·ÇÇÏ°Ô ³ªÅ¸³¯ °ÍÀÌ´Ù. ÇÏÁö¸¸ strstr ÇÔ¼ö´Â °íµµ·Î ÃÖÀûÈ­µÇ¾î ÀÖÀ¸¸ç ±â°è¾î ¼öÁØ¿¡¼­ ¹®ÀÚ¿­ °Ë»öÀ» Çϱ⠶§¹®¿¡ Àû´çÇÑ ±æÀÌÀÇ ¸ñ·Ï¿¡¼­´Â ¿ÀÈ÷·Á À̺Р°Ë»öº¸´Ù ÈξÀ ´õ ºü¸£°í ±»ÀÌ ¸ñ·ÏÀ» Á¤·ÄÇÒ ÇÊ¿ä°¡ ¾ø´Ù´Â ÀåÁ¡ÀÌ ÀÖ¾î ÀÌ ¹æ¹ýÀ» äÅÃÇÏ¿´´Ù.

¼ýÀÚ Á¡°Ë

IsNumber ÇÔ¼ö´Â ¿ÀÇÁ¼Â s¿Í e»çÀÌÀÇ ¹®ÀÚ¿­ÀÌ ¼ýÀÚÀÎÁö ¾Æ´ÑÁö¸¦ Á¶»çÇÑ´Ù. ¹®ÀÚ¿­À» ±¸¼ºÇÏ´Â ¸ðµç ¹®ÀÚ°¡ 0~9»çÀÌ¿¡ ÀÖ´Ù¸é ÀÌ ¹®ÀÚ¿­Àº ¼ýÀÚÀÌ´Ù. ´Ü, ¾Æ¶óºñ¾Æ ¼ýÀÚ»Ó¸¸ ¾Æ´Ï¶ó 16Áø¼ö Çü½ÄÀÇ ¹®ÀÚ¿­µµ Àֱ⠶§¹®¿¡ ½ÃÀÛ ºÎºÐÀÌ 0x³ª 0XÀÌ¸é ¾ËÆĺª a~f, A~Fµµ ¼ýÀÚÀÇ ÀϺκÐÀ¸·Î ÀÎÁ¤ÇÏ°í ÀÖ´Ù. ½Ç¼öÀÎ °æ¿ì¿Í ºÎÈ£°¡ ÀÖ´Â ¼ýÀÚÀÇ °æ¿ì - ±âÈ£¿Í ¼Ò¼öÁ¡Àº ±¸µÎÁ¡À̱⠶§¹®¿¡ ¼ýÀÚ ºÎºÐ°ú ±âÈ£ ºÎºÐÀÌ °¢°¢ µû·Î °Ë»çµÈ´Ù.

¾î¶² ¹®ÀÚµéÀÌ ¼ýÀÚ¸¦ ±¸¼ºÇϴ°¡´Â ¹®¹ý¿¡ µû¶ó ´Þ¶óÁø´Ù. C ¾ð¾î´Â 16Áø¼ö¸¦ 0x·Î Ç¥ÇöÇÏÁö¸¸ º£ÀÌÁ÷Àº &H·Î Ç¥ÇöÇϸç 16Áø Ç¥ÇöÀ» ¾²Áö ¸øÇÏ´Â ¹®¹ýµµ ¸¹ÀÌ ÀÖ´Ù. ±×·¡¼­ ÀÌ ÇÔ¼ö´Â ¿©·¯ ¹®¹ý¿¡ °øÅëµÇ±â´Â ÇÏÁö¸¸ ¸ðµç ¹®¹ý¿¡ Àý´ëÀûÀ¸·Î Àû¿ëµÇÁö´Â ¾Ê´Â´Ù. ÀÌ ÇÔ¼öÀÇ ºÐ¼®°á°ú¿Í ¸ÂÁö ¾Ê´Â ºÐ¼®±âµéÀº ÀÌ ÇÔ¼ö¸¦ ÀçÁ¤ÀÇÇÏ¿© »ç¿ëÇÑ´Ù.

½ºÅ¸ÀÏÀÇ »ö»ó

½ºÅ¸ÀÏÀÇ »ö»ó Á¤º¸¸¦ °¡Áö´Â arStyle ¹è¿­Àº °¢ ºÐ¼®±âÀÇ »ý¼ºÀÚ¿¡¼­ ÃʱâÈ­ÇÑ´Ù. CParseÀÇ GetStyleColor ÇÔ¼ö´Â ÀÌ ¹è¿­ÀÇ style ÷ÀÚ¿¡¼­ ±ÛÀÚ»ö°ú ¹è°æ»öÀ» Á¶»çÇØ ¸®ÅÏÇϱ⸸ ÇÑ´Ù. ºÐ¼®±â´Â pInfo¿¡ ºÐ¼® Á¤º¸¸¦ ÀÛ¼ºÇÏ°í ApiEdit´Â ÀÌ ºÐ¼® Á¤º¸¿¡¼­ ½ºÅ¸ÀÏ°ªÀ» ±¸ÇÑ ÈÄ GetStyleColor·ÎºÎÅÍ ½ºÅ¸ÀÏÀÇ »ö»ó°ªÀ» Á¶»çÇØ ±× »ö»ó´ë·Î Ãâ·ÂÇÔÀ¸·Î½á ±¸¹® ºÐ¼®°á°ú°¡ ºñ·Î¼Ò »ç¿ëÀÚÀÇ ´«¿¡ º¸ÀÌ°Ô µÈ´Ù.

SetStyleColor´Â ½ºÅ¸ÀÏÀÇ »ö»óÀ» Àμö·Î Àü´ÞµÈ fore, backÀ¸·Î º¯°æÇÑ´Ù. ºÐ¼®±â ½º½º·Î ½ºÅ¸ÀÏ »ö»óÀ» Á¤ÀÇÇÏ°í ÀÖÁö¸¸ ¿ÜºÎ¿¡¼­ ÀÌ ÇÔ¼ö¸¦ È£ÃâÇÔÀ¸·Î½á »ö»óÀ» ¹Ù²Ü ¼ö ÀÖ´Ù. È£½ºÆ®ÀÇ ¼³Á¤ º¯°æ(Customizing)À» Áö¿øÇϱâ À§ÇÑ ÇÔ¼öÀÌ´Ù. GetStyleName ÇÔ¼öµµ ¸¶Âù°¡Áö ¸ñÀûÀ¸·Î Á¦°øµÇ¸ç ÀÌ µÎ ÇÔ¼ö´Â ºÐ¼®±â°¡ Á÷Á¢ »ç¿ëÇÏÁö´Â ¾Ê´Â´Ù.

 

ÀÌ»óÀ¸·Î CParseÀÇ ÇÙ½É ¸â¹öÇÔ¼öµéÀ» ºÐ¼®Çغ¸¾Ò´Ù. ÀÌ ÇÔ¼öµéÀÇ ÁÖµÈ ÀÛ¾÷°Å¸®´Â pInfo ¹è¿­À» °ü¸®ÇÏ´Â °ÍÀÌ´Ù. CParseÀÇ ÆÄ»ý Ŭ·¡½ºÀÎ ½ÇÁ¦ ºÐ¼®±âµéÀº ÀÌ ÇÔ¼öµéÀ» È£ÃâÇÏ¿© °íÀ¯ÇÑ ¹æ¹ýÀ¸·Î ¹®¼­¸¦ ºÐ¼®ÇÏ¸ç ±× °á°ú¸¦ pInfo¿¡ ÀÛ¼ºÇÒ °ÍÀÌ°í ApiEdit´Â È­¸éÃâ·Â½Ã pInfoÀÇ ºÐ¼®°á°ú¸¦ ÂüÁ¶ÇÑ´Ù.