»ó¿ë±¸¶õ ½±°Ô ¸»Çؼ ÀÚÁÖ ÀÔ·ÂÇÏ´Â ¹®ÀåÀÌ´Ù. ¿¹¸¦ µé¾î °í°´¿¡°Ô º¸³¾ ¾È³»ÀåÀ» ÀÛ¼ºÇÏ°í ÀÖ´Ù¸é "°¨»çÇÕ´Ï´Ù"¶ó´Â ¹®ÀåÀ» ÀÚÁÖ ÀÔ·ÂÇÒ °ÍÀÌ°í ¸¸È ¿µÈ¿¡ ´ëÇÑ ³í¹®À» ÀÛ¼ºÇÑ´Ù¸é "·Îº¸Æ® Å层 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°¡ °¡¸®Å°´Â ¹®ÀÚ¿À» ±æÀ̸¸Å ¼ø¼´ë·Î Ãâ·ÂÇÑ´Ù.