本文整理汇总了C++中WString::size方法的典型用法代码示例。如果您正苦于以下问题:C++ WString::size方法的具体用法?C++ WString::size怎么用?C++ WString::size使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WString
的用法示例。
在下文中一共展示了WString::size方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: execute
bool VpeMain::execute( const WString& cmd )
{
if( _config->debug() && !confirm( "Starting '%s'", cmd ) ) {
return( false );
}
startWait();
size_t icount = strlen( cmd );
for( size_t i = 0; i < icount; ) {
WString cbuff;
while( isspace( cmd[i] ) ) i++;
for( ; i < icount; ) {
char ch = cmd[i];
i++;
if( ch == '\n' || ch == '\r' ) break;
cbuff.concat( ch );
}
if( cbuff.size() > 0 ) {
if( strnicmp( cbuff, "!Error ", 7 ) == 0 ) {
WString msg;
for( size_t i = 7; i < cbuff.size() && cbuff[i] != '$'; i++ ) {
msg.concat( cbuff[i] );
}
WMessageDialog::messagef( this, MsgError, MsgOk, _viperError, msg );
return( false );
} else {
if( !executeOne( cbuff ) ) {
return( false );
}
}
}
}
return( true );
}
示例2: getShortPathName
size_t SDLPlatform::getShortPathName( const WString & _path, WChar * _short, size_t _len ) const
{
size_t pathSize = _path.size();
if( _len == pathSize )
{
wcscpy( _short, _path.c_str() );
}
return _path.size();
}
示例3: ConvertURL
void CWebView::ConvertURL ( const CefString& url, SString& convertedURL )
{
CefURLParts urlParts;
if ( !CefParseURL ( url, urlParts ) )
{
convertedURL = "";
return;
}
WString scheme = urlParts.scheme.str;
if ( scheme == L"http" || scheme == L"https" )
{
convertedURL = UTF16ToMbUTF8 ( urlParts.spec.str );
}
else
{
// Get the file name (charsequence after last /)
WString tempStr = urlParts.path.str;
size_t pos = tempStr.find_last_of ( L"/" );
if ( pos != std::wstring::npos && pos < tempStr.size () )
convertedURL = UTF16ToMbUTF8 ( tempStr.SubStr ( pos + 1 ) );
else
convertedURL = "";
}
}
示例4: dump
void MWorkFile::dump( WFile& fil )
{
MRule* rule = _item->rule();
WString& mask = _component->mask();
fil.printf( "#%FP", this );
fil.printf( ", %s:%s", (const char*)mask, (const char*)rule->tag() );
fil.printf( ", %s", (const char*)*this );
WString n;
int icount = _states.count();
if( icount > 0 ) {
bool first = TRUE;
for( int i=0; i<icount; i++ ) {
MState* st = (MState*)_states[i];
WString temp;
st->sw()->getText( temp, st );
if( temp.size() > 0 ) {
if( first ) n.concat( " (" );
if( !first ) n.concat( ' ' );
n.concat( temp );
first = FALSE;
}
}
if( !first ) n.concat( ')' );
}
fil.printf( " %s\n", (const char*)n );
}
示例5: return
MSwitch* WEXPORT MFamily::findSwitch( MTool *tool, WString& switchtag, long fixed_version )
{
//
// Open Watcom IDE configuration/project files are buggy
// There are many switch ID's which were changed by incompatible way
// IDE uses various hacks to fix it later instead of proper solution
// It is very hard to detect what was broken in each OW version because
// there vere no change to version number of project files
//
#if CUR_CFG_VERSION < 5
tool = tool;
#endif
int icount = _switches.count();
bool isSetable = ( switchtag.size() > MASK_SIZE && switchtag[MASK_SIZE] != ' ' );
if( fixed_version == 0 || !isSetable ) {
for( int i = 0; i < icount; i++ ) {
MSwitch* sw = (MSwitch*)_switches[i];
if( sw->isTagEqual( switchtag ) ) {
return( sw );
}
}
} else {
for( int i = 0; i < icount; i++ ) {
MSwitch* sw = (MSwitch*)_switches[i];
if( !sw->isSetable() )
continue;
#if CUR_CFG_VERSION > 4
// upgrade switchtag to current configuration files version
if( _config->version() > 4 || fixed_version < 41 ) {
// check for old text
if( sw->isTagEqual( tool, switchtag, 1 ) ) {
sw->getTag( switchtag );
return( sw );
}
// check for current text
if( sw->isTagEqual( tool, switchtag ) ) {
sw->getTag( switchtag );
return( sw );
}
continue;
}
#endif
if( sw->isTagEqual( switchtag ) ) {
return( sw );
}
//
// hack for buggy version of configuration/project files
//
if( _config->version() == 4 || fixed_version == 40 ) {
if( sw->isTagEqual( switchtag, 1 ) ) {
// upgrade switchtag to current configuration files version
sw->getTag( switchtag );
return( sw );
}
}
}
}
return( NULL );
}
示例6: wcstombs
String w2l(const WString& wstr) {
return w2l(wstr.c_str(), wstr.size());
#if 0
size_t len = wstr.size();
String result;
result.resize(len * AX_MB_LEN_MAX);
size_t count = wcstombs(&result[0], &wstr[0], result.size());
AX_ASSERT(count <= result.size());
result.resize(count);
return result;
#endif
}
示例7:
String w2u(const WString& wstr) {
return w2u(wstr.c_str(), wstr.size());
#if 0
size_t len = wstr.size();
String result;
result.resize(len * AX_UTF8_LEN_MAX);
if (sizeof(wchar_t) == sizeof(UTF16)) {
const UTF16* srcstart = (UTF16*)&wstr[0];
const UTF16* srcend = srcstart + len;
UTF8* dststart = (UTF8*)&result[0];
UTF8* dstend = dststart + result.size();
ConversionResult cr = ConvertUTF16toUTF8(&srcstart, srcend, &dststart, dstend, strictConversion);
result.resize(dststart - (UTF8*)&result[0]);
}
return result;
#endif
}
示例8: MFamily
MTool::MTool( WTokenFile& fil, WString& tok )
{
fil.token( _tag );
fil.token( _name );
fil.token( tok );
for(;;) {
if( tok == "Family" ) {
_families.add( new MFamily( fil, tok ) );
} else if( tok == "IncludeTool" ) {
MTool* tool = _config->findTool( fil.token( tok ) );
if( tool != NULL ) {
_incTools.add( tool );
}
fil.token( tok );
#if CUR_CFG_VERSION > 4
} else if( _config->version() > 4 && tok == "SwitchText" ) {
WString id;
fil.token( id );
fil.token( tok );
if( tok.size() > 0 ) {
_switchesTexts.setThis( new WString( tok ), new WString( id ) );
}
// define map "text -> id" for older versions of project files
while( !fil.eol() ) {
fil.token( tok );
if( tok.size() > 0 ) {
// define new switch text for map
_switchesIds.setThis( new WString( id ), new WString( tok ) );
}
}
fil.token( tok );
#endif
} else if( tok == "Help" ) {
fil.token( _help );
fil.token( tok );
} else if( tok == "rem" ) {
fil.flushLine( tok );
fil.token( tok );
} else {
break;
}
}
}
示例9: kludgeMask
void MConfig::kludgeMask( WString& str )
{
if( _kludge ) {
WString temp;
for( size_t i=0; i<str.size(); i++ ) {
temp.concat( str[i] );
if( _kludge == 3 && i == 0 ) temp.concat( '?' );
if( _version > 1 && _kludge == 3 && i == 2 ) temp.concat( '?' );
if( _version > 1 && _kludge == 4 && i == 3 ) temp.concat( '?' );
}
str = temp;
}
}
示例10: toString
//-----------------------------------------------------------------------
String UnicodeFileSystemArchive::toString( const WString& _wstring ) const
{
if(sizeof(String::value_type) == sizeof(WString::value_type))
{
return reinterpret_cast<const String&>(_wstring);
}
else
{
CodepageConverter::ByteBuffer buf( (const uint8*) _wstring.c_str(), _wstring.size() * 2);
String string;
mUtf16Converter->bufferToUnicode(string, buf);
return string;
}
}
示例11: setProject
void GUIStatusBar::setProject(const WString& name, bool modified)
{
WStringStream content;
content << L"Project: ";
if (name.size() > 20)
content << name.substr(0, 20) << L"...";
else
content << name;
if (modified)
content << L"*";
mProject->setContent(HString(content.str()));
}
示例12: setScene
void GUIStatusBar::setScene(const WString& name, bool modified)
{
WStringStream content;
content << L"Scene: ";
if (name.size() > 15)
content << name.substr(0, 15) << L"...";
else
content << name;
if (modified)
content << L"*";
mScene->setContent(HString(content.str()));
}
示例13: insertBlanks
void MProject::insertBlanks( WString& s )
{
WString ss;
bool lineStart = true;
for( size_t i=0; i<s.size(); i++ ) {
if( lineStart && s[i] != ' ' && s[i] != '!' ) {
ss.concat( ' ' );
}
ss.concat( s[i] );
if( s[i] == '\n' ) {
lineStart = true;
} else {
lineStart = false;
}
}
s = ss;
}
示例14: runCmd
void VMsgLog::runCmd( WString &cmd )
{
static char buff[MAX_BUFF+1];
addLine( cmd );
blength = 0;
buffer[blength] = '\0';
if( !_batserv ) {
#ifdef __WINDOWS__
VxDPut( cmd.gets(), cmd.size() + 1 );
for(;;) {
int len = VxDGet( buff, MAX_BUFF );
buff[len] = '\0';
if( streq( buff, TERMINATE_COMMAND_STR ) ) {
break;
} else if( len > 0 ) {
scanLine( buff, len );
}
}
#endif
} else {
unsigned maxlen;
maxlen = BatchMaxCmdLine();
cmd.truncate( maxlen );
BatchSpawn( cmd );
for( ;; ) {
WSystemService::sysYield(); //allow other tasks to run
unsigned long stat;
int len = BatchCollect( buff, MAX_BUFF, &stat );
if( len < 0 ) {
break;
} else if( len > 0 ) {
scanLine( buff, len );
}
}
}
if( strlen( buffer ) > 0 ) {
addLine( buffer );
}
}
示例15: doRun
void VMsgLog::doRun()
{
_running = TRUE;
if( isIconic() ) {
show( WWinStateShowNormal );
} else {
show();
}
setFocus();
_batcher->setFocus();
if( _cwd.size() > 0 ) {
WString c( "cd " );
c.concat( _cwd );
lastCD = "";
if( !_batserv ) {
runCmd( c );
} else {
addLine( c );
BatchChdir( _cwd );
}
}
int icount = _command.size();
for( int i=0; i<icount; ) {
WString cbuff;
for( ;i<icount; ) {
char ch = _command[i++];
if( ch == '\n' ) break;
cbuff.concat( ch );
}
if( cbuff.size() > 0 ) {
runCmd( cbuff );
}
}
addLine( "Execution complete" );
_running = FALSE;
_parent->quickRefresh();
}