注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

BCB-DG's Blog

...

 
 
 

日志

 
 

uswmem  

2008-11-25 14:27:29|  分类: Delphi |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

/***********************************************************
* Base Filename: uswmem.cpp, uswmem.obj
* Version Information: Version 1.0
* Author: David S. Hall
* Author SSN: 496-68-1789
* Author E-mail: halldavids@sbcglobal.net
* Description: U.S. Code Map Wide Memory Functions
***********************************************************/


/* Precompiled Files */
#include <windows.h>
#pragma hdrstop


/* Include Files */
#include "uswmem.h"


/* Pragmas */
#pragma package(smart_init)

 


/* Wide Character Memory Compare, Case-Insensitive */
int us_wmemicmp( const wchar_t* dest, const wchar_t* src, size_t len )
{
wchar_t* s;
wchar_t* d;
size_t   n;
wchar_t  a;
wchar_t  b;
int      i;

 


/* Initialize */
s = (wchar_t*)src;
d = (wchar_t*)dest;
n = len;

 


while (n != 0)
{


a = *s;
b = *d;


if ((a >= (wchar_t)0x0041) && (a <= (wchar_t)0x005A)) a += (wchar_t)0x0020;
if ((b >= (wchar_t)0x0041) && (b <= (wchar_t)0x005A)) b += (wchar_t)0x0020;


if (a > b)
{
i = +1;
return i;
} /* end if */


if (a < b)
{
i = -1;
return i;
} /* end if */


/* Increment To Next */
++s;
++d;
--n;


} /* end while */

 


/* Comparison Successful */
i = 0;

 


return i;
} /* end us_wmemicmp */

 


/* Convert Wide-C-String To Ansi-C-String */
char* us_wcstrtoacstr( wchar_t* wcstr )
{
char*    cstr;
size_t   len;
wchar_t* src;
char*    dest;


len = wcslen( (const wchar_t*)wcstr );


cstr = new char[(len + 1)];


if (cstr == NULL)
return NULL;


src  = wcstr;
dest = cstr;


while (len != 0)
{
*dest = (char)*src;
++src;
++dest;
--len;
} /* end while */


*dest = (char)0x00;

 


return cstr;
} /* end us_wcstrtoacstr */

 


/* Convert Ansi-C-String To Wide-C-String */
wchar_t* us_acstrtowcstr( char* acstr )
{
wchar_t* wstr;
size_t   len;
char*    src;
wchar_t* dest;


len = strlen( (const char*)acstr );


wstr = new wchar_t[(len + 1)];


if (wstr == NULL)
return NULL;


src  = acstr;
dest = wstr;


while (len != 0)
{
*dest = (wchar_t)*src;
++src;
++dest;
--len;
} /* end while */


*dest = (wchar_t)0x0000;

 


return wstr;
} /* end us_acstrtowcstr */

 


/* Convert Ansi-Byte-Array To Wide-C-Array */
wchar_t* us_abyarrtowcarr( void* abyarr, size_t abLen )
{
wchar_t* wcarr;
LPBYTE   src;
wchar_t* dest;
size_t   len;


wcarr = new wchar_t[abLen];


if (wcarr == NULL)
return NULL;


src  = (LPBYTE)abyarr;
dest = wcarr;
len  = abLen;


while (len != 0)
{
*dest = (wchar_t)*src;
++src;
++dest;
--len;
} /* end while */

 


return wcarr;
} /* end us_abyarrtowcarr */

 

  评论这张
 
阅读(731)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017