void TestStrIStr(void) { char szFooBar[] = "FooBar"; char* sz; sz = StrIStr(szFooBar, "bar"); AssertString("Bar", sz); sz = StrIStr(szFooBar, "FOO"); AssertString("FooBar", sz); }
BOOL CChars::ContainsIgnoreCase(const char* szString) { char* pc; pc = StrIStr(Text(), szString); if (pc) { return TRUE; } return FALSE; }
TRISTATE CFileFinder::FindFiles(char* szInDirectory, BOOL bDirs, char* szInName, char* szExtension) { DIR* pDIR; struct dirent* pDirEnt; char szFindName[MAX_PATH]; char szTemp[MAX_PATH]; BOOL bValid; char szDirectory[MAX_PATH]; char szFile[MAX_PATH]; char* szFileExtension; int iStatus; struct stat sBuffer; BOOL bDir; CFileUtil cFileUtil; if (!cFileUtil.FullPath(szDirectory, szInDirectory, MAX_PATH)) { return TRIERROR; } pDIR = opendir(szDirectory); if (pDIR == NULL) { return TRITRUE; } pDirEnt = readdir(pDIR); while (pDirEnt != NULL) { bValid = TRUE; sprintf(szTemp, "%s%s%s", szDirectory, FILE_SEPARATOR, pDirEnt->d_name); iStatus = stat(szTemp, &sBuffer); if (iStatus == -1) { printf("%s: %s\n", strerror(errno), szTemp); return TRIERROR; } bDir = S_ISDIR(sBuffer.st_mode); if (bDir) //Directory { if (bDirs) { if (szInName != NULL) { strcpy(szFile, pDirEnt->d_name); RemoveExtension(szFile); if (StrIStr(szFile, szInName) == NULL) { bValid = FALSE; } } else { bValid = FALSE; } } } else { if (!bDirs) { if (szExtension != NULL) { szFileExtension = FindExtension(pDirEnt->d_name); szFileExtension++; if (StrICmp(szFileExtension, szExtension) != 0) { bValid = FALSE; } } if (szInName != NULL) { strcpy(szFile, pDirEnt->d_name); RemoveExtension(szFile); if (StrIStr(szFile, szInName) == NULL) { bValid = FALSE; } } } else { bValid = FALSE; } } if (bValid) { mcFiles.Add(szTemp, 0); } pDirEnt = readdir(pDIR); } closedir(pDIR); return TRITRUE; }
CSubtitle* CSubtitleRealTextReader::ReadSubTitle(CSubtitleText *reader) { wchar_t Buffer[MAX_SUBTITLE_LINE_SIZE]; CSubtitle *subtitle = new CSubtitle(); for(;;) { wchar_t *line = reader->ReadLine(); if (line == NULL) break; line = StrIStr(line, L"<time "); if (line == NULL) continue; line += 6; wchar_t *begin = StrIStr(line, L"Begin=\""); if (begin == NULL) continue; int64_t start = read_ts(begin); wchar_t *end = StrIStr(line, L"end=\""); int64_t stop = end ? read_ts(end) : 0; line = StrIStr(line, L">"); int32_t skip = 0; int32_t i = 0; for(wchar_t *p = line; *p; p++) { if(*p == '>') { skip = 0; continue; } if(*p == '<') { skip = 1; continue; } if(skip) { continue; } if (i < MAX_SUBTITLE_LINE_SIZE - 1) { Buffer[i] = *p; i++; } } if (i) { Buffer[i] = 0; CSubtitleItem *item = subtitle->NewItem(); item->AddLine(Buffer); item->m_StartTime = start; item->m_Duration = stop; } } if (subtitle->m_Count) return subtitle; delete subtitle; return NULL; }