本文整理汇总了C++中WStrVec::SortNatural方法的典型用法代码示例。如果您正苦于以下问题:C++ WStrVec::SortNatural方法的具体用法?C++ WStrVec::SortNatural怎么用?C++ WStrVec::SortNatural使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WStrVec
的用法示例。
在下文中一共展示了WStrVec::SortNatural方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: LoadImageDir
bool ImageDirEngineImpl::LoadImageDir(const WCHAR *dirName)
{
fileName = str::Dup(dirName);
fileExt = L"";
ScopedMem<WCHAR> pattern(path::Join(dirName, L"*"));
WIN32_FIND_DATA fdata;
HANDLE hfind = FindFirstFile(pattern, &fdata);
if (INVALID_HANDLE_VALUE == hfind)
return false;
do {
if (!(fdata.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) {
if (ImageEngine::IsSupportedFile(fdata.cFileName))
pageFileNames.Append(path::Join(dirName, fdata.cFileName));
}
} while (FindNextFile(hfind, &fdata));
FindClose(hfind);
if (pageFileNames.Count() == 0)
return false;
pageFileNames.SortNatural();
pages.AppendBlanks(pageFileNames.Count());
mediaboxes.AppendBlanks(pageFileNames.Count());
return true;
}
示例2: OpenDir
bool DirFileProvider::OpenDir(const WCHAR* dirPath) {
AssertCrash(filesToOpen.size() == 0);
bool hasFiles = CollectStressTestSupportedFilesFromDirectory(dirPath, fileFilter, filesToOpen);
filesToOpen.SortNatural();
AutoFreeW pattern(str::Format(L"%s\\*", dirPath));
bool hasSubDirs = CollectPathsFromDirectory(pattern, dirsToVisit, true);
return hasFiles || hasSubDirs;
}
示例3: OpenDir
bool DirFileProvider::OpenDir(const WCHAR *dirPath)
{
assert(filesToOpen.Count() == 0);
bool hasFiles = CollectStressTestSupportedFilesFromDirectory(dirPath, fileFilter, filesToOpen);
filesToOpen.SortNatural();
ScopedMem<WCHAR> pattern(str::Format(L"%s\\*", dirPath));
bool hasSubDirs = CollectPathsFromDirectory(pattern, dirsToVisit, true);
return hasFiles || hasSubDirs;
}
示例4: ParsePageRanges
// parses a list of page ranges such as 1,3-5,7- (i..e all but pages 2 and 6)
// into an interable list (returns nullptr on parsing errors)
// caller must delete the result
bool ParsePageRanges(const WCHAR* ranges, Vec<PageRange>& result) {
if (!ranges)
return false;
WStrVec rangeList;
rangeList.Split(ranges, L",", true);
rangeList.SortNatural();
for (size_t i = 0; i < rangeList.size(); i++) {
int start, end;
if (str::Parse(rangeList.at(i), L"%d-%d%$", &start, &end) && 0 < start && start <= end)
result.Append(PageRange(start, end));
else if (str::Parse(rangeList.at(i), L"%d-%$", &start) && 0 < start)
result.Append(PageRange(start, INT_MAX));
else if (str::Parse(rangeList.at(i), L"%d%$", &start) && 0 < start)
result.Append(PageRange(start, start));
else
return false;
}
return result.size() > 0;
}
示例5: keyName
static WCHAR *GetGhostscriptPath()
{
WCHAR *gsProducts[] = {
L"AFPL Ghostscript",
L"Aladdin Ghostscript",
L"GPL Ghostscript",
L"GNU Ghostscript",
};
// find all installed Ghostscript versions
WStrVec versions;
REGSAM access = KEY_READ | KEY_WOW64_32KEY;
TryAgain64Bit:
for (int i = 0; i < dimof(gsProducts); i++) {
HKEY hkey;
ScopedMem<WCHAR> keyName(str::Join(L"Software\\", gsProducts[i]));
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, keyName, 0, access, &hkey) != ERROR_SUCCESS)
continue;
WCHAR subkey[32];
for (DWORD ix = 0; RegEnumKey(hkey, ix, subkey, dimof(subkey)) == ERROR_SUCCESS; ix++)
versions.Append(str::Dup(subkey));
RegCloseKey(hkey);
}
if ((access & KEY_WOW64_32KEY)) {
// also look for 64-bit Ghostscript versions under 64-bit Windows
access = KEY_READ | KEY_WOW64_64KEY;
#ifndef _WIN64
// (unless this is 32-bit Windows)
if (IsRunningInWow64())
#endif
goto TryAgain64Bit;
}
versions.SortNatural();
// return the path to the newest installation
for (size_t ix = versions.Count(); ix > 0; ix--) {
for (int i = 0; i < dimof(gsProducts); i++) {
ScopedMem<WCHAR> keyName(str::Format(L"Software\\%s\\%s",
gsProducts[i], versions.At(ix - 1)));
ScopedMem<WCHAR> GS_DLL(ReadRegStr(HKEY_LOCAL_MACHINE, keyName, L"GS_DLL"));
if (!GS_DLL)
continue;
ScopedMem<WCHAR> dir(path::GetDir(GS_DLL));
ScopedMem<WCHAR> exe(path::Join(dir, L"gswin32c.exe"));
if (file::Exists(exe))
return exe.StealData();
exe.Set(path::Join(dir, L"gswin64c.exe"));
if (file::Exists(exe))
return exe.StealData();
}
}
// if Ghostscript isn't found in the Registry, try finding it in the %PATH%
DWORD size = GetEnvironmentVariable(L"PATH", NULL, 0);
ScopedMem<WCHAR> envpath(AllocArray<WCHAR>(size));
if (size > 0 && envpath) {
GetEnvironmentVariable(L"PATH", envpath, size);
WStrVec paths;
paths.Split(envpath, L";", true);
for (size_t ix = 0; ix < paths.Count(); ix++) {
ScopedMem<WCHAR> exe(path::Join(paths.At(ix), L"gswin32c.exe"));
if (file::Exists(exe))
return exe.StealData();
exe.Set(path::Join(paths.At(ix), L"gswin64c.exe"));
if (file::Exists(exe))
return exe.StealData();
}
}
return NULL;
}