Skip to content

Commit 3ec1cb1

Browse files
committed
add setting of serial numbering filenames 4
1 parent 14644e4 commit 3ec1cb1

File tree

2 files changed

+32
-2
lines changed

2 files changed

+32
-2
lines changed

GUI.cpp

+10-2
Original file line numberDiff line numberDiff line change
@@ -2827,6 +2827,7 @@ XgGenerateNumberingFilename(HWND hwnd, LPCWSTR pszText, LPSYSTEMTIME pLocalTime,
28272827

28282828
XGStringW str = pszText;
28292829

2830+
// 連番(%N, %1N, %2N, %3N, %4N, %5N, %6N)。
28302831
StringCchPrintfW(szN, _countof(szN), L"%d", iFile);
28312832
StringCchPrintfW(szN1, _countof(szN1), L"%01d", iFile);
28322833
StringCchPrintfW(szN2, _countof(szN2), L"%02d", iFile);
@@ -2842,11 +2843,13 @@ XgGenerateNumberingFilename(HWND hwnd, LPCWSTR pszText, LPSYSTEMTIME pLocalTime,
28422843
xg_str_replace_all(str, L"%5N", szN5);
28432844
xg_str_replace_all(str, L"%6N", szN6);
28442845

2846+
// マスのサイズ(%W, %H)。
28452847
StringCchPrintfW(szW, _countof(szW), L"%d", xg_nCols);
28462848
StringCchPrintfW(szH, _countof(szH), L"%d", xg_nRows);
28472849
xg_str_replace_all(str, L"%W", szW);
28482850
xg_str_replace_all(str, L"%H", szH);
28492851

2852+
// 日時(%Y/%M/%D %h:%m:%s)。
28502853
StringCchPrintfW(szYear, _countof(szYear), L"%04d", pLocalTime->wYear);
28512854
StringCchPrintfW(szMonth, _countof(szMonth), L"%02d", pLocalTime->wMonth);
28522855
StringCchPrintfW(szDay, _countof(szDay), L"%02d", pLocalTime->wDay);
@@ -2859,16 +2862,21 @@ XgGenerateNumberingFilename(HWND hwnd, LPCWSTR pszText, LPSYSTEMTIME pLocalTime,
28592862
xg_str_replace_all(str, L"%h", szHour);
28602863
xg_str_replace_all(str, L"%m", szMinute);
28612864
xg_str_replace_all(str, L"%s", szSecond);
2865+
2866+
// 曜日(%w)。
28622867
xg_str_replace_all(str, L"%w", aszWeekDay[pLocalTime->wDayOfWeek]);
28632868

2869+
// コンピュータ名(%C)。
28642870
DWORD cchComputer = _countof(szComputer);
2865-
GetComputerNameW(szComputer, &cchComputer);
2871+
::GetComputerNameW(szComputer, &cchComputer);
28662872
xg_str_replace_all(str, L"%C", szComputer);
28672873

2874+
// ユーザ名(%U)。
28682875
DWORD cchUser = _countof(szUser);
2869-
GetUserNameW(szUser, &cchUser);
2876+
::GetUserNameW(szUser, &cchUser);
28702877
xg_str_replace_all(str, L"%U", szUser);
28712878

2879+
// 二重パーセント(%%)。
28722880
xg_str_replace_all(str, L"%%", L"%");
28732881

28742882
return str;

XgFileSettings.cpp

+22
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,28 @@ XgFileSettingsDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
160160
pch = PathFindExtensionW(xg_szNumberingFileName2);
161161
if (!pch || !*pch)
162162
PathAddExtensionW(xg_szNumberingFileName2, L".xd");
163+
164+
// 不正な文字を置き換える。
165+
for (LPWSTR pch = xg_szNumberingFileName1; *pch; ++pch)
166+
{
167+
switch (*pch)
168+
{
169+
case L'/': case L'\\': case L':': case L'*': case L'?':
170+
case L'<': case L'>': case L'|':
171+
*pch = L'_';
172+
break;
173+
}
174+
}
175+
for (LPWSTR pch = xg_szNumberingFileName2; *pch; ++pch)
176+
{
177+
switch (*pch)
178+
{
179+
case L'/': case L'\\': case L':': case L'*': case L'?':
180+
case L'<': case L'>': case L'|':
181+
*pch = L'_';
182+
break;
183+
}
184+
}
163185
}
164186
break;
165187
}

0 commit comments

Comments
 (0)