星星博客's Archiver

cnangel 发表于 2004-3-5 13:47

[分享]记录文件函数代码,LOG FILE

记录文件函数代码,LOG FILE
用法
void File_Init(IShell * m_pIShell , char * File_Name)
初始化

void File_Write(IShell * m_pIShell , char * File_Name, unsigned char * File_Data, int len)
写string

void File_BWrite(IShell * m_pIShell , char * File_Name, unsigned char * File_Data, int len)
写内存值



-------------------------------------------------------------------------------------------------------------------------------

void File_Init(IShell * m_pIShell , char * File_Name)
{
IFile * pIFile = NULL;
IFileMgr * pIFileMgr;
char szFileName[50];
MEMSET(szFileName, 0x00, sizeof(szFileName));
if(ISHELL_CreateInstance(m_pIShell, AEECLSID_FILEMGR,(void **)&pIFileMgr))
  return;
SPRINTF(szFileName, "%s", File_Name);

if ((pIFile = IFILEMGR_OpenFile(pIFileMgr, szFileName, _OFM_CREATE)) == NULL)
{
  IFILEMGR_Release(pIFileMgr);
  pIFileMgr = NULL;
  return;
}
}

void File_Write(IShell * m_pIShell , char * File_Name, unsigned char * File_Data, int len)
{
IFile * pIFile = NULL;
IFileMgr * pIFileMgr;
char szFileName[50]  = {0};
if(ISHELL_CreateInstance(m_pIShell, AEECLSID_FILEMGR,(void **)&pIFileMgr))
return;
SPRINTF(szFileName, "%s", File_Name);

if ((pIFile = IFILEMGR_OpenFile(pIFileMgr, szFileName, _OFM_APPEND)) == NULL)
{
  IFILEMGR_Release(pIFileMgr);
  pIFileMgr = NULL;
  return;
}

IFILE_Write(pIFile, File_Data, (uint32)len);
IFILE_Release(pIFile);
pIFile = NULL;
IFILEMGR_Release(pIFileMgr);
pIFileMgr = NULL;
}
void File_BWrite(IShell * m_pIShell , char * File_Name, unsigned char * File_Data, int nLen)
{
IFile * pIFile = NULL;
IFileMgr * pIFileMgr;
char szFileName[50]  = {0};
char szFileBuff[50] = {0};
int i=0;
if(ISHELL_CreateInstance(m_pIShell, AEECLSID_FILEMGR,(void **)&pIFileMgr))
return;
SPRINTF(szFileName, "%s", File_Name);

if ((pIFile = IFILEMGR_OpenFile(pIFileMgr, szFileName, _OFM_APPEND)) == NULL)
{
  IFILEMGR_Release(pIFileMgr);
  pIFileMgr = NULL;
  return;
}

SPRINTF(szFileBuff, "--- DEBUG [%s] Start [%d]--- \n", "Memory", nLen);
IFILE_Write(pIFile, szFileBuff, (uint32)STRLEN(szFileBuff));

for(i=0; i<nLen; i++){
  if ( nLen-i >= 16 ){
   SPRINTF(szFileBuff, "%02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x\n",
    File_Data[i+0], File_Data[i+1], File_Data[i+2], File_Data[i+3], File_Data[i+4], File_Data[i+5], File_Data[i+6], File_Data[i+7],
    File_Data[i+8], File_Data[i+9], File_Data[i+10], File_Data[i+11], File_Data[i+12], File_Data[i+13], File_Data[i+14], File_Data[i+15] );
   i += 15;
  }
  else {
   int j;

   for(j=0; i<nLen ; i++){
    SPRINTF(&szFileBuff[j*3], "%02x \n", File_Data[i]);
    j++;
   }
  }
  IFILE_Write(pIFile, szFileBuff, (uint32)STRLEN(szFileBuff));
}

SPRINTF(szFileBuff, "--- DEBUG [%s] End --- \n", "Memory");
IFILE_Write(pIFile, szFileBuff, (uint32)STRLEN(szFileBuff));


IFILE_Release(pIFile);
pIFile = NULL;
IFILEMGR_Release(pIFileMgr);
pIFileMgr = NULL;
}


//////
例子
File_Init(pMe->m_applet.m_pIShell, (char*)"log.txt");

File_BWrite(pMe->m_applet.m_pIShell, (char*)"log.txt",(unsigned char*)"aaasbndjdjdjfikeifasdfsad", 25);

File_Write(pMe->m_applet.m_pIShell, (char*)"log.txt",(unsigned char*)"aaasbndjdjdjfikeifasdfsad", 25);

//文件内容。。
--- DEBUG [Memory] Start [25]---
61 61 61 73 62 6e 64 6a 64 6a 64 6a 66 69 6b 65
69 66 61 73 64 66 73 61 64
--- DEBUG [Memory] End ---
aaasbndjdjdjfikeifasdfsad



页: [1]

Powered by Discuz! Archiver 7.0.0  © 2001-2009 Comsenz Inc.