// tchar.h
#ifndef tchar_h
#define tchar_h
#ifdef _UNICODE
typedef wchar_t TCHAR;
typedef wchar_t _TCHAR;
#define _T(x) L## x
#define _tmain wmain
#define _tWinMain wWinMain
#define _tfopen _wfopen
//#define _fgetts fgetws
#define _fgetts fgetws
#define _tprintf wprintf
#define _ftprintf fwprintf
//#define _ftprintf fprintf
#define _stprintf swprintf
#define _tcslen wcslen
#define _tcscpy wcscpy
#define _tcscat wcscat
#define _tcsncpy wcsncpy
#define _tcscmp wcscmp
//jcfuller added
#define _tcsicmp wcsicmp
#define _tcsncmp wcsncmp
#define _tcsnicmp _wcsnicmp
#define _tcsrev _wcsrev
//#define FltToTch FltToWch
#define _ttol _wtol
#define _ttoi _wtoi
#define _ttoi64 _wtoi64
#define _gettchar getchar
#define _ttof _wtof
//jcfuller added
#define _tcschr _wcschr
#define Version VersionW
#define _totupper towupper
#define _totlower tolower
#define _istspace _iswspace
#define _istdigit _iswdigit
#define _istxdigit _iswxdigit
#define _istalpha _iswalpha
#define _istalnum _iswalnum
#define _istcntrl _iswcntrl
#define _istprint _iswprint
#define _istgraph _iswgraph
#define _istlower _iswlower
#define _istpunct _iswpunct
#define _istupper _iswupper
#define _tsystem tcl__wsystem
#define _tsplitpath tcl_wsplitpath
#define wcsstr _wcsstr
//#define rand _rand
//#define srand _srand
//#define exit tcl_exit
#define fflush tcl_fflush
#define _fgettc fgetwc
#define _ungettc ungetwc
#define _TEOF WEOF
#define _istspace _iswspace
#else
typedef char TCHAR;
#define _T(x) x
#define _tmain main
#define _tWinMain WinMain
#define _tfopen fopen
#define _fgetts fgets
#define _tprintf printf
#define _ftprintf fprintf
#define _stprintf sprintf
#define _tcslen strlen
#define _tcscpy strcpy
#define _tcscat strcat
#define _tcsncpy strncpy
#define _tcscmp strcmp
//jcfuller added
#define _tcsicmp stricmp
#define _tcsncmp strncmp
#define _tcsnicmp _strnicmp
#define _tcsrev _strrev
#define FltToTch FltToCh
#define _ttol atol
#define _ttoi64 _atoi64
//jcfuller added
#define strchr _strchr
#define Version VersionA
#define _istspace _isspace
//#define rand _rand
//#define srand _srand
#define exit tcl_exit
#define fflush tcl_fflush
#define _tsplitpath tcl_splitpath
#define isspace _isspace
#define isdigit _isdigit
#define isxdigit _isxdigit
#define isalpha _isalpha
#define isalnum _isalnum
#define iscntrl _iscntrl
#define isprint _isprint
#define isgraph _isgraph
#define islower _islower
#define ispunct _ispunct
#define isupper _isupper
#define _atof atof
#define _fgettc fgetc
#define _ungettc ungetc
#define _TEOF EOF
#endif
#endif
WCHAR* Replace(IN WCHAR* zMain, IN WCHAR* zSearch, IN WCHAR* zReplace) {
static WCHAR sResult[512];
ZeroMemory(sResult, 512 * sizeof(WCHAR));
long nMain = (long)wcslen(zMain);
long nSearch = (long)wcslen(zSearch);
WCHAR* zParse = new WCHAR[nMain];
long K = 0, nFound = 0, nStart = 0, ptr = 0;
for (K = 0; K < nMain; K++) {
if (zMain[K] == zSearch[nFound]) {
nFound++;
if (nStart == 0) { nStart = K; }
} else if (nFound) {
if (nFound == nSearch) {
ZeroMemory(zParse, nMain * sizeof(WCHAR));
MoveMemory(&zParse[0], &zMain[ptr], (nStart - ptr) * sizeof(WCHAR));
AddStr(sResult, zParse); AddStr(sResult, zReplace);
ptr = nStart + nSearch;
nFound = 0; nStart = 0;
} else if (nFound) {
if (zMain[K] != zSearch[nFound]) {
nFound = 0; nStart = 0;
}
}
}
}
if ((ptr > 0) && (nMain > ptr)) {
ZeroMemory(zParse, nMain * sizeof(WCHAR));
MoveMemory(&zParse[0], &zMain[ptr], (nMain - ptr) * sizeof(WCHAR));
AddStr(sResult, zParse);
}
delete [] zParse;
return sResult;
}
Page created in 0.195 seconds with 11 queries.