1.»ó¿ë±¸

°¡.»ó¿ë±¸ ·¹ÄÚµå

»ó¿ë±¸¶õ ½±°Ô ¸»Çؼ­ ÀÚÁÖ ÀÔ·ÂÇÏ´Â ¹®ÀåÀÌ´Ù. ¿¹¸¦ µé¾î °í°´¿¡°Ô º¸³¾ ¾È³»ÀåÀ» ÀÛ¼ºÇÏ°í ÀÖ´Ù¸é "°¨»çÇÕ´Ï´Ù"¶ó´Â ¹®ÀåÀ» ÀÚÁÖ ÀÔ·ÂÇÒ °ÍÀÌ°í ¸¸È­ ¿µÈ­¿¡ ´ëÇÑ ³í¹®À» ÀÛ¼ºÇÑ´Ù¸é "·Îº¸Æ® Å层 V"³ª "¾Æ±â°ø·æ µÑ¸®"µûÀ§¸¦ ÀÚÁÖ ¾ð±ÞÇÒ °ÍÀÌ´Ù. ¼ö½Ã·Î ÀÔ·ÂÇÒ ¹®ÀåÀ» »ó¿ë±¸·Î µî·ÏÇØ ³õÀ¸¸é ÀÏÀÏÀÌ Å¸ÀÌÇÁ¸¦ Ä¡Áö ¾Ê¾Æµµ ºü¸£°Ô ÀÔ·ÂÇÒ ¼ö ÀÖ¾î Æí¸®ÇÏ´Ù. ¿ö³« º¸ÆíÀûÀÎ ±â´ÉÀ̶ó ÅؽºÆ® ÆíÁý±â´Â ¹°·Ð ¿öµå ÇÁ·Î¼¼¼­µéµµ »ó¿ë±¸¸¦ Áö¿øÇÑ´Ù.

°³¹ßÀÚ¿¡°Ôµµ »ó¿ë±¸ ±â´ÉÀº ¾ÆÁÖ ½Ç¿ëÀûÀε¥ C ÄÚµùÀ» ÇÏ´Ùº¸¸é for (i=0;i<n;i++) { °°Àº ¹Ýº¹¹®À̳ª switch case °°Àº ¼±Åù®Àº ´Ã»ó ÀÔ·ÂÇØ¾ß ÇÑ´Ù. ÀÌ·± ¹®ÀåÀ» »ó¿ë±¸·Î µî·ÏÇØ ³õÀ¸¸é ÄÚµå ÀÛ¼º ½Ã°£ÀÌ »¡¶óÁú »Ó¸¸ ¾Æ´Ï¶ó ¿ÀŸµµ ÁÙÀÏ ¼ö ÀÖ´Ù. »ó¿ë±¸´Â ´Ü¼øÈ÷ ¹®ÀåÀ» ´ë½Å ÀÔ·ÂÇØ ÁÖ´Â Á¤µµÀÇ ±â´É¸¸ °¡Áö´Â °ÍÀÌ ¾Æ´Ï¶ó ÀÚÁÖ »ç¿ëÇÏ´Â ¹®¼­ÀÇ Æ²À» ÀÚµ¿À¸·Î »ý¼ºÇÏ´Â ±â´ÉÀ» °¡Áö±âµµ ÇÑ´Ù. ƯÈ÷ HTMLÀ̳ª ÀÚ¹Ù ½ºÅ©¸³Æ®Ã³·³ ´Ã»ó ºñ½Á ºñ½ÁÇÑ Äڵ带 º£²¸ ¾²´Â °³¹ßÀڵ鿡°Ô »ó¿ë±¸ ±â´ÉÀÌ Æ¯È÷ À¯¿ëÇÏ´Ù.

»ó¿ë±¸´Â ¸ÅÅ©·Î³ª ´ÜÃàÅ°¿Í´Â ´Þ¸® º°µµÀÇ ºÐ¸®µÈ ÆÄÀÏ¿¡ ÀúÀåÇÑ´Ù. ·¹Áö½ºÆ®¸®¿¡ ÀúÀåÇϱ⿡´Â ³Ê¹« Ŭ »Ó¸¸ ¾Æ´Ï¶ó Á¤¼ºµé¿© ÀÛ¼ºÇÑ »ó¿ë±¸´Â Àç»ç¿ë °¡´ÉÇؼ­ »ç¿ëÀڵ鳢¸® ÆÄÀÏÀ» ¼­·Î ±³È¯ÇÒ ¼öµµ ÀÖ´Ù. ÀÌ·± Àç»ç¿ë¼ºÀ» ³ôÀ̱â À§ÇØ ÇϳªÀÇ »ó¿ë±¸ ÆÄÀÏ¿¡ ¿©·¯ °³ÀÇ ÅؽºÆ®¸¦ °èÃþÀûÀ¸·Î ÀúÀåÇÏ¿© ¼ö°¡ ¸¹¾Æµµ ½±°Ô °Ë»öÇÒ ¼ö ÀÖ°Ô ÇÒ °ÍÀÌ´Ù.

»ó¿ë±¸´Â È£½ºÆ®ÀÇ ±â´ÉÀÌ¸ç ´ëºÎºÐÀÇ °ü¸® Äڵ尡 È£½ºÆ®¿¡ ÀÛ¼ºµÇÁö¸¸ ÄÁÆ®·Ñµµ »ó¿ë±¸¸¦ À§ÇÑ ¾à°£ÀÇ Áö¿øÀ» ÇØ¾ß ÇÑ´Ù. »ó¿ë±¸ »ðÀÔ ÈÄ ¹Ì¸® ÁöÁ¤ÇÑ °÷À¸·Î ij·µÀ» À̵¿ÇѴٰųª »ç¿ëÀÚ°¡ ÀÔ·ÂÇÒ ºÎºÐÀ» ¹Ì¸® ¼±ÅÃÇØ ³õ´Â ±â´ÉÀº ÄÁÆ®·ÑÀÌ Áö¿øÇØ¾ß ÇÑ´Ù. ¶ÇÇÑ ÀÚµ¿ »ó¿ë±¸°°Àº °í±Þ ±â´ÉÀº ÄÁÆ®·Ñ°ú È£½ºÆ®°¡ »óÈ£ ÇùÁ¶ÀûÀ¸·Î µ¿ÀÛÇØ¾ß ¿øÇÒÇÏ°Ô Áö¿øÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½ ±¸Á¶Ã¼´Â »ó¿ë±¸ Çϳª¸¦ ÀúÀåÇÑ´Ù. ½Ç½À Ãʹݿ¡ ¹Ì¸® ¸¸µé¾î µÎ¾ú´ø Clip.h¿¡ ÀÌ ±¸Á¶Ã¼¸¦ ¼±¾ðÇÑ´Ù.

 

// »ó¿ë±¸ ±¸Á¶Ã¼

class CClipRecord

{

public:

     CClipRecord();

 

     int Parent;

     int Type;

     TCHAR Name[32];

     TCHAR AutoName[16];

     TCHAR *Content;

     int len;

     int DefAction;

 

     TCHAR FontFace[32];

     BYTE PitchAndFamily;

     BYTE CharSet;

     BYTE FontSize;

     COLORREF cFore,cBack;

     int nWrap;

     int nParser;

     int nView;

     int LineRatio;

     BYTE Reserved[16];

};

enum {DGCT_FOLDER=1, DGCT_CLIP };

 

ÇüÅ»óÀ¸·Î »ý¼ºÀÚ¸¦ °¡Áö´Â Ŭ·¡½ºÀÌÁö¸¸ ½ÇÁ¦·Î´Â ´Ü¼øÇÑ ±¸Á¶Ã¼ÀÌ´Ù. »ý¼ºÀÚ´Â Clip.cpp¿¡ ´ÙÀ½°ú °°ÀÌ ÀÛ¼ºÇÑ´Ù.

 

CClipRecord::CClipRecord()

{

     memset(this,0,sizeof(CClipRecord));

}

 

°´Ã¼ÀÇ ¸ðµç ¸â¹ö¸¦ 0À¸·Î ä¿ö ºó »óÅ·Π·¹Äڵ带 ÃʱâÈ­ÇÑ´Ù. ·¹ÄÚµåÀÇ ±¸Á¶´Â ÇÁ·ÎÁ§Æ®¿Í À¯»çÇѵ¥ µÑ ´Ù °èÃþÀûÀÎ ÀڷḦ ÀúÀåÇÑ´Ù´Â ¸é¿¡¼­ °øÅëÁ¡ÀÌ ÀÖ´Ù. Parent ¸â¹ö°¡ ºÎ¸ð ·¹ÄÚµåÀÇ Ã·ÀÚ¸¦ °¡¸®Å°¸ç -1ÀÏ °æ¿ì ·çÆ® ¹Ù·Î ¾Æ·¡¿¡ ÀÖ´Ù´Â ¶æÀÌ´Ù. TypeÀº ·¹ÄÚµåÀÇ Á¾·ù¸¦ ÁöÁ¤Çϴµ¥ 1À̸é Æú´õÀÌ°í 2ÀÌ¸é »ó¿ë±¸´Ù. Parent¿Í Type ¸â¹ö¿¡ ÀÇÇØ »ó¿ë±¸ ·¹Äڵ峢¸® °èÃþÀ» ±¸¼ºÇÑ´Ù.

NameÀº »ó¿ë±¸ÀÇ À̸§À̸ç ÃÖ´ë 31ÀÚ±îÁö °¡´ÉÇÏ´Ù. »ó¿ë±¸ÀÇ ³»¿ëÀ» Àß Ç¥ÇöÇÒ ¼ö ÀÖ´Â ¼³¸íÀûÀÎ À̸§À» ºÙÀÌ´Â °ÍÀÌ ÁÁ´Ù. AutoNameÀº ÀÚµ¿ »ðÀÔ¸íÀÌ¸ç º»¹®¿¡¼­ ÀÚµ¿ »ðÀÔ¸íÀ» ÀÔ·ÂÇÏ¸é ¹Ù·Î »ó¿ë±¸¸¦ »ðÀÔÇÏ´Â ±â´ÉÀÌ ÀÖ´Ù. ¿¹¸¦ µé¾î "¾È³çÇϼ¼¿ä"¶ó´Â »ó¿ë±¸ÀÇ ÀÚµ¿ »ðÀÔ¸íÀ» "Àλç"¶ó°í ÀÛ¼ºÇØ ³õ°í "Àλç"¶ó°í¸¸ Ä¡¸é "¾È³çÇϼ¼¿ä"¸¦ »ðÀÔÇÑ´Ù. ÀÚµ¿ »ó¿ë±¸ ±â´ÉÀº º°µµÀÇ ´ÜÃàÅ°°¡ ¾Æ´Ï¶ó ¹®ÀÚÅ°·Î »ó¿ë±¸¸¦ ¹Ù·Î »ðÀÔÇÒ ¼ö ÀÖÀ¸¹Ç·Î Æí¸®ÇÏ´Ù. µÎ À̸§ÀÇ ±æÀÌ´Â Àû´çÇÑ ¼öÁØ¿¡¼­ °áÁ¤Çߴµ¥ »ó¿ë±¸´Â Ç×»ó ¿­·Á Àֱ⠶§¹®¿¡ ³Ê¹« ±æ¸é ¸Þ¸ð¸® ³¶ºñ°¡ ½ÉÇØÁø´Ù.

Content´Â »ó¿ë±¸ÀÇ ½ÇÁ¦ ³»¿ëÀ̸ç ÀÌ ¹®ÀÚ¿­ÀÌ ¹®¼­¿¡ »ðÀԵȴÙ. °¡º¯ ±æÀ̸¦ °¡Áö¹Ç·Î ½ÇÇàÁß¿¡ ÇÊ¿äÇѸ¸Å­ ÇÒ´ç ¹× ÀçÇÒ´çµÇ¸ç ·¹ÄÚµå´Â ±× Æ÷ÀÎÅ͸¸ ±â¾ïÇÑ´Ù. lenÀº ³»¿ëÀÇ ±æÀÌÀÌ´Ù. DefActionÀº »ó¿ë±¸ â¿¡¼­ »ó¿ë±¸¸¦ ´õºíŬ¸¯ÇßÀ» ¶§ ¾î¶² µ¿ÀÛÀ» ÇÒ °ÍÀΰ¡¸¦ ÁöÁ¤ÇÏ¸ç »ðÀÔ, º¹»ç, »õ ÆÄÀÏ·Î ¼Â Áß Çϳª¸¦ ¼±ÅÃÇÒ ¼ö ÀÖ´Ù.

³ª¸ÓÁö ¸â¹ö´Â »ó¿ë±¸ ¹®ÀÚ¿­À» º¸¿© ÁÖ±â À§ÇÑ ¼Ó¼ºµéÀε¥ ´ç±ÙÀº ÀÌ Áß ±¸¹® ºÐ¼®±â¸¦ Á¤ÀÇÇÏ´Â nParser¸¸ »ç¿ëÇÑ´Ù. ³ª¸ÓÁö ¸â¹ö´Â »ó¿ë±¸¿Í´Â Àß ¾î¿ï¸®Áö ¾ÊÁö¸¸ È®ÀåÀ» À§ÇØ ¹Ì¸® Æ÷ÇÔÇØ µÎ¾ú´Ù. »ó¿ë±¸ Çϳª¸¦ ÀϹÝÀûÀÎ ¹®¼­Ã³·³ Ãë±ÞÇÒ °æ¿ì »ó¿ë±¸ ¹­À½Àº ÅؽºÆ® ÆÄÀÏÀÇ ÁýÇÕÀÌ µÉ ¼ö Àִµ¥ À̶§ °¢ ¹®¼­°¡ °³º°ÀûÀ¸·Î ´Ù¸¥ ¼Ó¼ºÀ» °¡Áú ¼öµµ ÀÖÀ» °ÍÀÌ´Ù. ´ç±Ù »ó¿ë±¸ ÆÄÀÏÀº ÆÄÀÏ ¹­À½ Æ÷¸ËÀ» Á¤ÀÇÇÏ¸ç ¿©·¯ ¸ð·Î È°¿ëÇÒ ¿©Áö°¡ ¸¹¾Æ È®À强À» °í·ÁÇÏ¿´´Ù.

¸¶Áö¸· ¸â¹öÀÎ Reserved´Â ¿©¿ìºÐÀε¥ ¾ÕÀ¸·Î ´õ ÇÊ¿äÇÑ Çʵ带 À§ÇØ 16¹ÙÀÌÆ®ÀÇ °ø°£À» ¹Ì¸® È®º¸ÇØ µÎ¾ú´Ù. Àå·¡¿¡ ¹Ì¸® ¾î¶² Çʵ尡 ´õ ÇÊ¿äÇÒÁö ¿¹ÃøÇϱâ Èûµé¹Ç·Î ÃÖ´ëÇÑ ÇÏÀ§ ¹öÀü ȣȯ¼ºÀ» À¯ÁöÇϱâ À§ÇØ ¿¹ºñ ¿ë·®À» ³²°Ü µÎ´Â °ÍÀÌ´Ù. »ó¿ë±¸´Â ¿µ±¸ÀûÀÎ ÆÄÀÏ·Î ÀúÀåµÇ±â ¶§¹®¿¡ ´ç±ÙÀÌ ¾÷±×·¹À̵åµÇ´õ¶óµµ ÀÌÀü ¹öÀü°ú Æ÷¸ËÀÌ È£È¯µÇ¾î¾ß ÇÑ´Ù.

³ª.»ó¿ë±¸ ¹­À½

»ó¿ë±¸ ¹­À½Àº »ó¿ë±¸ ·¹ÄÚµåÀÇ ÁýÇÕÀ̸ç ÆÄÀÏ·Î ÀúÀåµÇ´Â Æ÷¸ËÀ̱⵵ ÇÏ´Ù. ÀüüÀûÀÎ ±¸Á¶´Â ÇÁ·ÎÁ§Æ® ÆÄÀÏ°ú °ÅÀÇ À¯»çÇÏ´Ù. Çì´õ¿Í º»Ã¼·Î ±¸¼ºµÈ´Ù.

 

// »ó¿ë±¸ÀÇ Çì´õ

struct SClipHeader

{

     TCHAR Text[64];

     int Ver;

     TCHAR Name[64];

     TCHAR Desc[128];

     int Num;

     BYTE Reserved[16];

};

 

// »ó¿ë±¸ ÆÄÀÏ

class CClipFile

{

public:

     SClipHeader Header;

     CClipRecord *arRecord;

 

     CClipFile();

     ~CClipFile();

     int Load(TCHAR *Path);

     BOOL Save(TCHAR *Path);

};

 

Çì´õ´Â ¾È³»¹®, »ó¿ë±¸ ¹­À½ÀÇ À̸§°ú ¹öÀü Á¤º¸, ÃÑ »ó¿ë±¸ ·¹ÄÚµåÀÇ °³¼ö µî¿¡ ´ëÇÑ ±âº»ÀûÀÎ Á¤º¸¸¦ °¡Áø´Ù. È®ÀåÀ» À§ÇØ ¿©±â¿¡µµ ¾à°£ÀÇ ¿©À¯ºÐÀ» ÁÖ¾ú´Ù. CClipFile Ŭ·¡½º´Â Çì´õ¿Í ·¹ÄÚµå ¹è¿­À» ¸â¹ö·Î °¡Áö¸ç »ó¿ë±¸ ¹­À½À» °ü¸®ÇÏ´Â ¸â¹ö ÇÔ¼ö¸¦ Á¤ÀÇÇÑ´Ù. ¸â¹ö ÇÔ¼ö´Â Clip.cpp¿¡ ÀÛ¼ºÇÑ´Ù.

 

// ¿ÏÀüÈ÷ ÅÖ ºó »óÅ·Π»ý¼º

CClipFile::CClipFile()

{

     memset(&Header,0,sizeof(SClipHeader));

     lstrcpy(Header.Text,"´ç±Ù »ó¿ë±¸ ÆÄÀÏÀÔ´Ï´Ù.Dangeun Clip File");

     Header.Ver=120;

     arRecord=NULL;

}

 

CClipFile::~CClipFile()

{

     int i;

 

     // »ó¿ë±¸ÀÇ ³»¿ëµµ ÇØÁ¦ÇÑ´Ù.

     if (arRecord) {

          for (i=0;i<Header.Num;i++) {

              if (arRecord[i].Content) {

                   free(arRecord[i].Content);

              }

          }

          free(arRecord);

     }

}

 

// ÆÄÀÏ¿¡¼­ Àо ¸Þ¸ð¸®·Î ¿Ã¸²

int CClipFile::Load(TCHAR *Path)

{

     HANDLE hFile;

     DWORD dwRead;

     BOOL Result=0;

     int i;

 

     hFile=CreateFile(Path,GENERIC_READ,0,NULL,

          OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);

     if (hFile==INVALID_HANDLE_VALUE) {

          return -1;

     }

 

     // Çì´õ ¸ÕÀú ÀÐÀ½

     ReadFile(hFile,&Header,sizeof(SClipHeader),&dwRead,NULL);

     if (Header.Ver != 120) {

          Result=-2;

          goto end;

     }

 

     // ·¹Äڵ尡 ¾øÀ¸¸é ´õ ÀÐÀ» °Å ¾øÀ½

     if (Header.Num == 0) {

          goto end;

     }

 

     // ·¹ÄÚµå¼ö¸¸Å­ ¸Þ¸ð¸® ÇÒ´çÇÏ°í ·¹Äڵ带 Åë°·Î ÀоîµéÀÓ

     arRecord=(CClipRecord *)malloc(Header.Num*sizeof(CClipRecord));

     ReadFile(hFile,arRecord,Header.Num*sizeof(CClipRecord),&dwRead,NULL);

 

     // ³»¿ë ÀÐÀ½

     for (i=0;i<Header.Num;i++) {

          if (arRecord[i].Type == DGCT_CLIP) {

              arRecord[i].Content=(TCHAR *)calloc(arRecord[i].len+1,1);

              ReadFile(hFile,arRecord[i].Content,arRecord[i].len,&dwRead,NULL);

          }

     }

 

end:

     CloseHandle(hFile);

     return Result;

}

 

// ÆÄÀÏ·Î ÀúÀå.

BOOL CClipFile::Save(TCHAR *Path)

{

     HANDLE hFile;

     DWORD dwWritten;

     int i;

     int ConOff;

     CClipRecord cr;

 

     hFile=CreateFile(Path,GENERIC_WRITE,0,NULL,

          CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);

     if (hFile==INVALID_HANDLE_VALUE) {

          return FALSE;

     }

 

     // Çì´õ ¸ÕÀú Ãâ·Â

     WriteFile(hFile,&Header,sizeof(SClipHeader),&dwWritten,NULL);

 

     // ·¹ÄÚµå Ãâ·Â. Æ÷ÀÎÅÍ´Â ¿ÀÇÁ¼ÂÀ¸·Î ¹Ù²Ù¾î ÀúÀåÇÑ´Ù. ´Ü, Æú´õ´Â Á¦¿Ü

     ConOff=sizeof(SClipHeader)+Header.Num*sizeof(CClipRecord);

     for (i=0;i<Header.Num;i++) {

          cr=arRecord[i];

          if (cr.Type == DGCT_CLIP) {

              // ÀÌ ¿ÀÇÁ¼ÂÀº ÀÓÀÇ Á¢±ÙÀ» À§ÇØ ÇÊ¿äÇÔ. ¼ø¼­´ë·Î ÀÐÀ» ¶§´Â »ç½Ç ÇÊ¿ä°¡ ¾øÀ½

              cr.Content=(TCHAR *)ConOff;

              ConOff+=cr.len;

          }

          WriteFile(hFile,&cr,sizeof(CClipRecord),&dwWritten,NULL);

     }

 

     // »ó¿ë±¸ ¹®ÀÚ¿­ Ãâ·Â

     for (i=0;i<Header.Num;i++) {

          if (arRecord[i].Type == DGCT_CLIP) {

              WriteFile(hFile,arRecord[i].Content,arRecord[i].len,&dwWritten,NULL);

          }

     }

     CloseHandle(hFile);

 

     return TRUE;

}

 

»ý¼ºÀÚ´Â ·¹Äڵ尡 Çϳªµµ ¾ø´Â »óÅ·Π¹­À½À» ÃʱâÈ­ÇÑ´Ù. Çì´õ¿¡ ¾È³»¹®°ú ¹öÀü Á¤º¸¸¸ ÀÛ¼ºÇØ µÎ¾ú´Ù. Æı«ÀÚ´Â ·¹ÄÚµå ¹è¿­¿¡ ÇÒ´çµÈ ¸ðµç ¸Þ¸ð¸®¿Í ·¹ÄÚµå ¹è¿­ ÀÚü¸¦ ÇØÁ¦ÇÑ´Ù. Load¿Í Save´Â ¹­À½ Àüü¸¦ ÆÄÀÏ·Î ÀúÀåÇϰųª º¹±¸ÇÑ´Ù. »ó¿ë±¸ ¹­À½Àº ÆÄÀÏ¿¡ ÀúÀåµÉ ¶§¿Í ¸Þ¸ð¸®·Î ¿Ã¶ó¿ÔÀ» ¶§ÀÇ ¸ð¾çÀÌ ´Ù¸£´Ù. ÆÄÀÏ¿¡ ÀúÀåµÉ ¶§ÀÇ ¸ð¾çÀº ´ÙÀ½°ú °°´Ù.

Çì´õ ´ÙÀ½¿¡ ¹Ù·Î arRecord ¹è¿­ÀÌ À̾îÁö¸ç ·¹ÄÚµå °³¼ö´Â HeaderÀÇ Num ¸â¹ö°¡ ±â¾ïÇÑ´Ù. °¢ ·¹ÄÚµåÀÇ Content ¸â¹ö´Â »ó¿ë±¸ÀÇ ½ÇÁ¦ ³»¿ëÀÌ ÆÄÀÏÀÇ ¾îµðÂë¿¡ ÀÖ´ÂÁö ¿ÀÇÁ¼ÂÀ» ±â¾ïÇÑ´Ù. ÆÄÀÏÀº ¹ÙÀÌÆ®ÀÇ ½ºÆ®¸²À̹ǷΠ½ÇÁ¦ ³»¿ë À§Ä¡¸¦ ¿ÀÇÁ¼ÂÀ¸·Î ±â¾ïÇØ¾ß Çϸç Æ÷ÀÎÅÍ´Â ¾Æ¹« Àǹ̰¡ ¾ø´Ù. lenÀº ³»¿ëÀÇ ±æÀÌÀ̸ç Á¤È®ÇÑ ±æÀ̸¦ À¯ÁöÇϹǷΠÆÄÀÏ¿¡ ÀúÀåµÇ´Â »ó¿ë±¸ ³»¿ëÀº NULL Á¾·áµÇÁö ¾Ê¾Æµµ »ó°ü¾ø´Ù. ·¹ÄÚµå ¹è¿­ ´ÙÀ½¿¡ »ó¿ë±¸ÀÇ ½ÇÁ¦ ³»¿ëÀÎ ÅؽºÆ®µéÀÌ À̾îÁø´Ù. °¡º¯ ±æÀÌÀ̱⠶§¹®¿¡ ·¹ÄÚµå ¹è¿­¿¡ °°ÀÌ Æ÷ÇÔÇÒ ¼ö ¾øÀ¸¸ç ·¹ÄÚµå ¹è¿­ ´ÙÀ½¿¡ À̾îÁø´Ù.

Load ÇÔ¼ö´Â ·¹ÄÚµå ¹è¿­À» ÀоîµéÀδÙ. ¸ÕÀú Çì´õ¸¦ ÀÐ¾î ¹öÀü ¹øÈ£°¡ À¯È¿ÇÑÁö, »ó¿ë±¸°¡ Á¸ÀçÇÏ´Â ÆÄÀÏÀÎÁö¸¦ Á¡°ËÇÑ´Ù. ±×¸®°í Çì´õÀÇ Num¼ö¸¸Å­ ¹è¿­À» ÇÒ´çÇϸç ÀÌ ¼ö¸¸Å­ ·¹Äڵ带 ÀоîµéÀδÙ. ¼ø¼­´ë·Î °¢ ·¹ÄÚµåÀÇ ±æÀ̸¸Å­ Content ¸â¹ö¸¦ ÇÒ´çÇÏ°í ³»¿ëÀ» ÀоîµéÀ̱⸸ ÇÏ¸é µÈ´Ù. À̶§´Â ¼øÂ÷ Á¢±ÙÀ» ÇϹǷΠContent¿¡ ÀúÀåµÈ ¿ÀÇÁ¼ÂÀ» ÂüÁ¶ÇÒ ÇÊ¿ä°¡ ¾ø´Ù. ContentÀÇ ¿ÀÇÁ¼ÂÀº ÀÓÀÇ Á¢±ÙÀ» ÇÒ ¶§¸¸ ÇÊ¿äÇÏ´Ù. ¹­À½ÀÌ ¸Þ¸ð¸®¿¡ ÀÐÇôÁ³À» ¶§ÀÇ ¸ð¾çÀº ´ÙÀ½°ú °°´Ù.

arRecord ¹è¿­Àº Çì´õÀÇ Num °³¼ö¸¸Å­ µ¿ÀûÀ¸·Î ÇÒ´çµÈ´Ù. °¢ ·¹ÄÚµåÀÇ Content´Â »ó¿ë±¸ÀÇ ½ÇÁ¦ ³»¿ëÀ» °¡Áö´Â ¸Þ¸ð¸®ÀÇ Æ÷ÀÎÅÍÀε¥ ¿©±â°¡ ¾îµðÂë µÉ Áö´Â ¿¹ÃøÇÒ ¼ö ¾ø´Ù. mallocÀ¸·Î ·¹ÄÚµåÀÇ len+1¸¸Å­ ÇÒ´çµÇ¾î ¸Þ¸ð¸®ÀÇ ¾îµò°¡¿¡ Á¸ÀçÇÒ °ÍÀÌ¸ç ±× Æ÷ÀÎÅ͸¦ Content°¡ °¡¸®Å°°í ÀÖ´Ù. ³Î Á¾·á ¹®ÀÚ¿­·Î °ü¸®µÇ¹Ç·Î ¸Þ¸ð¸®¿¡ ¿Ã¶ó¿Í ÀÖÀ» ¶§ len ¸â¹ö´Â ÀüÇô »ç¿ëµÇÁö ¾Ê´Â´Ù.

ÆÄÀÏ·Î Á¸ÀçÇÒ ¶§¿Í ¸Þ¸ð¸®¿¡ Àü°³µÇ¾úÀ» ¶§ÀÇ ¸ð½ÀÀÌ ÀÌ·¸°Ô ´Ù¸¥ ±Ùº»ÀûÀÎ ÀÌÀ¯´Â ¸Þ¸ð¸®¿¡ ¿Ã¶ó¿ÔÀ» ¶§´Â Content ³»¿ëÀÌ ¾ðÁ¦µçÁö ÆíÁýµÉ ¼ö Àֱ⠶§¹®ÀÌ´Ù. ±æÀÌ°¡ ´Ã¾ú´Ù ÁÙ¾ú´Ù ÇÒ ¼ö ÀÖ±â À§Çؼ­ Content¸¦ ¼ö½Ã·Î ÀçÇÒ´çÇØ¾ß ÇϹǷΠ±× ŸÀÔÀÌ TCHAR *¿©¾ß ÇÑ´Ù. ÇÏÁö¸¸ ÆÄÀÏÀº ¿¬¼ÓÀûÀÎ ¹ÙÀÌÆ® ½ºÆ®¸²À¸·Î ÀúÀåÇØ¾ß ÇϹǷΠContent´Â ¿ÀÇÁ¼ÂÀ̾î¾ß ÇÑ´Ù.

Save ÇÔ¼ö´Â ¸Þ¸ð¸®¿¡ ÆíÁýÁßÀÎ ·¹ÄÚµå ¹è¿­À» ÆÄÀÏ·Î ÀúÀåÇÑ´Ù. Çì´õ ¸ÕÀú Ãâ·ÂÇÏ°í °¢ ·¹ÄÚµå ¹è¿­ÀÇ Content¸¦ ¿ÀÇÁ¼ÂÀ¸·Î Á¶»çÇÏ¿© Ãâ·ÂÇÑ´Ù. »ó¿ë±¸ ³»¿ë±îÁö ¿ÏÀüÈ÷ ÆÄÀÏ·Î Ãâ·ÂµÇ±â Àü±îÁö Content°¡ °¡¸®Å°´Â Æ÷ÀÎÅ͸¦ À¯ÁöÇϱâ À§ÇØ Àӽà ±¸Á¶Ã¼ cr¿¡ Á¤º¸¸¦ ÀÛ¼ºÇÑ ÈÄ Ãâ·ÂÇß´Ù.Àӽà ±¸Á¶Ã¼ crÀÇ Content´Â ·¹ÄÚµå ¹è¿­ ´ÙÀ½ÀÇ ´©Àû ¿ÀÇÁ¼ÂÀ¸·Î °è»êµÈ´Ù. ÀÌ ¿ÀÇÁ¼ÂÀº ¼øÂ÷ Á¢±ÙÀ» ÇÒ ¶§´Â »ç½Ç ÇÊ¿äÄ¡ ¾ÊÀ¸³ª ÀÓÀÇ Á¢±ÙÀ» À§ÇØ ÇÊ¿äÇÏ´Ù. ·¹ÄÚµå ¹è¿­À» ¸ðµÎ ±â·ÏÇÑ ÈÄ »ó¿ë±¸ÀÇ ½ÇÁ¦ ³»¿ëÀÎ Content°¡ °¡¸®Å°´Â ¹®ÀÚ¿­À» ±æÀ̸¸Å­ ¼ø¼­´ë·Î Ãâ·ÂÇÑ´Ù.