BOOL CParseSearchChgText::ParseReserveText(LPCWSTR filePath) { if( filePath == NULL ){ return FALSE; } this->chgKey.clear(); HANDLE hFile = _CreateFile2( filePath, GENERIC_READ, FILE_SHARE_READ, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL ); if( hFile == INVALID_HANDLE_VALUE ){ return FALSE; } DWORD dwFileSize = GetFileSize( hFile, NULL ); if( dwFileSize == 0 ){ CloseHandle(hFile); return TRUE; } char* pszBuff = new char[dwFileSize+1]; if( pszBuff == NULL ){ CloseHandle(hFile); return FALSE; } ZeroMemory(pszBuff,dwFileSize+1); DWORD dwRead=0; ReadFile( hFile, pszBuff, dwFileSize, &dwRead, NULL ); string strRead = pszBuff; CloseHandle(hFile); SAFE_DELETE_ARRAY(pszBuff) string parseLine=""; int iIndex = 0; DWORD dwCount = 1; while( iIndex != (int)string::npos ){ iIndex = (int)strRead.find("\r\n"); if( iIndex == (int)string::npos ){ parseLine = strRead; strRead.clear(); }else{ parseLine = strRead.substr(0,iIndex); strRead.erase( 0, iIndex+2 ); } //先頭;はコメント行 if( parseLine.find(";") != 0 ){ //空行? if( parseLine.find("\t") != string::npos ){ CHG_INFO Item; BOOL bRet = Parse1Line(parseLine, Item.oldText, Item.newText); if( bRet == TRUE ){ this->chgKey.push_back(Item); } } } } return TRUE; }
BOOL DLNAParsePublicFolder::ParseText(LPCWSTR filePath) { if( filePath == NULL ){ return FALSE; } this->folderList.clear(); HANDLE hFile = _CreateFile2( filePath, GENERIC_READ, FILE_SHARE_READ|FILE_SHARE_WRITE, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL ); if( hFile == INVALID_HANDLE_VALUE ){ return FALSE; } DWORD dwFileSize = GetFileSize( hFile, NULL ); if( dwFileSize == 0 ){ CloseHandle(hFile); return TRUE; } char* pszBuff = new char[dwFileSize+1]; if( pszBuff == NULL ){ CloseHandle(hFile); return FALSE; } ZeroMemory(pszBuff,dwFileSize+1); DWORD dwRead=0; ReadFile( hFile, pszBuff, dwFileSize, &dwRead, NULL ); string strRead = pszBuff; CloseHandle(hFile); SAFE_DELETE_ARRAY(pszBuff) string parseLine=""; size_t iIndex = 0; size_t iFind = 0; while( iFind != string::npos ){ iFind = strRead.find("\r\n", iIndex); if( iFind == (int)string::npos ){ parseLine = strRead.substr(iIndex); //strRead.clear(); }else{ parseLine = strRead.substr(iIndex,iFind-iIndex); //strRead.erase( 0, iIndex+2 ); iIndex = iFind + 2; } if( parseLine.find(";") != 0 ){ DLNA_PUBLIC_FOLDER_INFO Item; if( Parse1Line(parseLine, &Item) == TRUE ){ this->folderList.insert( pair<wstring, DLNA_PUBLIC_FOLDER_INFO>(Item.virtualPath,Item) ); } } } return TRUE; }
BOOL CParseChText4::ParseText(LPCWSTR filePath) { if( filePath == NULL ){ return FALSE; } this->chList.clear(); this->filePath = filePath; HANDLE hFile = _CreateFile2( filePath, GENERIC_READ, FILE_SHARE_READ|FILE_SHARE_WRITE, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL ); if( hFile == INVALID_HANDLE_VALUE ){ return FALSE; } DWORD dwFileSize = GetFileSize( hFile, NULL ); if( dwFileSize == 0 ){ CloseHandle(hFile); return TRUE; } char* pszBuff = new char[dwFileSize+1]; if( pszBuff == NULL ){ CloseHandle(hFile); return FALSE; } ZeroMemory(pszBuff,dwFileSize+1); DWORD dwRead=0; ReadFile( hFile, pszBuff, dwFileSize, &dwRead, NULL ); string strRead = pszBuff; CloseHandle(hFile); SAFE_DELETE_ARRAY(pszBuff) string parseLine=""; size_t iIndex = 0; size_t iFind = 0; while( iFind != string::npos ){ iFind = strRead.find("\r\n", iIndex); if( iFind == (int)string::npos ){ parseLine = strRead.substr(iIndex); //strRead.clear(); }else{ parseLine = strRead.substr(iIndex,iFind-iIndex); //strRead.erase( 0, iIndex+2 ); iIndex = iFind + 2; } CH_DATA4 Item; if( Parse1Line(parseLine, &Item) == TRUE ){ LONGLONG iKey = _Create64Key(Item.originalNetworkID, Item.transportStreamID, Item.serviceID ); this->chList.insert( pair<LONGLONG, CH_DATA4>(iKey,Item) ); } } return TRUE; }
BOOL CParseRecInfoText::ParseRecInfoText(LPCWSTR filePath) { if( filePath == NULL ){ return FALSE; } multimap<wstring, REC_FILE_INFO*>::iterator itr; for( itr = this->recInfoMap.begin(); itr != this->recInfoMap.end(); itr++ ){ SAFE_DELETE(itr->second) } this->recInfoMap.clear(); this->recIDMap.clear(); this->nextID = 1; this->loadFilePath = filePath; HANDLE hFile = _CreateFile2( filePath, GENERIC_READ, FILE_SHARE_READ, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL ); if( hFile == INVALID_HANDLE_VALUE ){ return FALSE; } DWORD dwFileSize = GetFileSize( hFile, NULL ); if( dwFileSize == 0 ){ CloseHandle(hFile); return TRUE; } char* pszBuff = new char[dwFileSize+1]; if( pszBuff == NULL ){ CloseHandle(hFile); return FALSE; } ZeroMemory(pszBuff,dwFileSize+1); DWORD dwRead=0; ReadFile( hFile, pszBuff, dwFileSize, &dwRead, NULL ); string strRead = pszBuff; CloseHandle(hFile); SAFE_DELETE_ARRAY(pszBuff); string parseLine=""; size_t iIndex = 0; size_t iFind = 0; while( iFind != string::npos ){ iFind = strRead.find("\r\n", iIndex); if( iFind == (int)string::npos ){ parseLine = strRead.substr(iIndex); //strRead.clear(); }else{ parseLine = strRead.substr(iIndex,iFind-iIndex); //strRead.erase( 0, iIndex+2 ); iIndex = iFind + 2; } //先頭;はコメント行 if( parseLine.find(";") != 0 ){ //空行? if( parseLine.find("\t") != string::npos ){ REC_FILE_INFO* item = new REC_FILE_INFO; BOOL bRet = Parse1Line(parseLine, item); if( bRet == FALSE ){ SAFE_DELETE(item) }else{ wstring strKey; Format(strKey, L"%04d%02d%02d%02d%02d%02d%04X%04X", item->startTime.wYear, item->startTime.wMonth, item->startTime.wDay, item->startTime.wHour, item->startTime.wMinute, item->startTime.wSecond, item->originalNetworkID, item->transportStreamID); item->id = GetNextReserveID(); this->recInfoMap.insert( pair<wstring, REC_FILE_INFO*>(strKey,item) ); this->recIDMap.insert( pair<DWORD, REC_FILE_INFO*>(item->id,item) ); } } } }
BOOL CParseEpgAutoAddText::ParseText(LPCWSTR filePath) { if( filePath == NULL ){ return FALSE; } map<DWORD, EPG_AUTO_ADD_DATA*>::iterator itr; for( itr = this->dataIDMap.begin(); itr != this->dataIDMap.end(); itr++ ){ SAFE_DELETE(itr->second) } this->dataIDMap.clear(); this->nextID = 1; this->loadFilePath = filePath; HANDLE hFile = _CreateFile2( filePath, GENERIC_READ, FILE_SHARE_READ, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL ); if( hFile == INVALID_HANDLE_VALUE ){ return FALSE; } DWORD dwFileSize = GetFileSize( hFile, NULL ); if( dwFileSize == 0 ){ CloseHandle(hFile); return TRUE; } char* pszBuff = new char[dwFileSize+1]; if( pszBuff == NULL ){ CloseHandle(hFile); return FALSE; } ZeroMemory(pszBuff,dwFileSize+1); DWORD dwRead=0; ReadFile( hFile, pszBuff, dwFileSize, &dwRead, NULL ); string strRead = pszBuff; CloseHandle(hFile); SAFE_DELETE_ARRAY(pszBuff) string parseLine=""; size_t iIndex = 0; size_t iFind = 0; while( iFind != string::npos ){ iFind = strRead.find("\r\n", iIndex); if( iFind == (int)string::npos ){ parseLine = strRead.substr(iIndex); //strRead.clear(); }else{ parseLine = strRead.substr(iIndex,iFind-iIndex); //strRead.erase( 0, iIndex+2 ); iIndex = iFind + 2; } //先頭;はコメント行 if( parseLine.find(";") != 0 ){ //空行? if( parseLine.find("\t") != string::npos ){ EPG_AUTO_ADD_DATA* item = new EPG_AUTO_ADD_DATA; BOOL bRet = Parse1Line(parseLine, item); if( bRet == FALSE ){ SAFE_DELETE(item) }else{ item->dataID = GetNextID(); this->dataIDMap.insert( pair<DWORD, EPG_AUTO_ADD_DATA*>(item->dataID,item) ); } } } }