当前位置: 首页>>代码示例>>C++>>正文


C++ STRING::assign方法代码示例

本文整理汇总了C++中STRING::assign方法的典型用法代码示例。如果您正苦于以下问题:C++ STRING::assign方法的具体用法?C++ STRING::assign怎么用?C++ STRING::assign使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在STRING的用法示例。


在下文中一共展示了STRING::assign方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: LoadWorld

// Load a world folder
int Level::LoadWorld(const STRING & p)
{
	if (cancel)
		return LVL_ERR_CANCEL;
	Reset();
	state = DIRECTORY;
	STRING path = p;

	STRING search;
	{
		char t[] = {"*"};
		search.assign(t, t+strlen(t));
	}

	// Find files
	FileSearch fs = FileSearch();
	fs.path = path;
	fs.amount = &total;
	fs.exclude.push_back(STR("DIM-1"));
	if (!ListFiles(&fs))
		return LVL_ERR_LISTING;
	files = fs.files;

	if (cancel)
		return LVL_ERR_CANCEL;
	total = files.size();
	work = 0;
	result = 0;
	done = 0;
	prefs.logging = !prefs.log.empty();
	if (prefs.version == BETA)
		total *= 1024;
	state = PROCESSING;

	// Limit threads
	if (prefs.threads > files.size())
		prefs.threads = files.size();
	// More threads than the computer can handle is no good for you
	unsigned long i = 0;
	if (prefs.threads > (i = Computer::GetLogicalCores()))
		prefs.threads = i & 0xFF;
	// Multithreaded program
	if (prefs.threads >= 2)
	{
		LoadMultiple();
	}
	else
	{
		LoadSingle();
	}

	// Fastest way to clear a stack
	while (!files.empty())
		files.pop();

	if (cancel)
		return LVL_ERR_CANCEL;

	return LVL_OK;
}
开发者ID:McTwist,项目名称:PixelMap,代码行数:61,代码来源:Level.cpp

示例2: GetSaveFolder

// Get save folder where minecraft store its saves
STRING PixelMap::GetSaveFolder()
{
#ifdef WIN32
	STRING appdata = Port::GetEnv("APPDATA");
#elif defined(UNIX)
	STRING appdata = Port::GetEnv("HOME");
#endif
	appdata.assign(appdata.c_str() + STR("\\.minecraft\\saves"));
	return appdata;
}
开发者ID:McTwist,项目名称:PixelMap,代码行数:11,代码来源:PixelMap.cpp

示例3: LoadLevel

// Load level information
int Level::LoadLevel(const STRING & path)
{
	STRING file;
	file.assign(path.c_str());
	STRING name = Port::FileName(file);
	file.append(Port::ReplacePath(STR("\\level.dat")));
	NBT_Reader read = NBT_Reader();
	read.Load(file);

	bool valid = false;

	NBTTag tag = read.ReadData(); // Read first compound
	while ((tag = read.ReadData()) != TAG_Unknown)
	{
		const NBTData * data = read.GetData();
		if (!data)
			continue;
		if (!valid)
		{
			if (data->tag != TAG_Compound)
				continue;
			if (!data->name)
				continue;
			if (!StringCheck(data->name, "Data"))
				continue;
			valid = true;
		}
		switch (data->tag)
		{
			case TAG_Int:
				if (StringCheck(data->name, "version"))
				{
					info.version = data->i;
				}
				break;
			case TAG_Long:
				if (StringCheck(data->name, "RandomSeed"))
				{
					info.seed = data->l;
				}
				break;
			case TAG_String:
				if (StringCheck(data->name, "LevelName"))
				{
					info.name.assign((char *)data->bas, (char *)data->bas+data->size);
				}
				break;
		}
	}
	// Alpha
	if (info.name.empty())
		info.name = name;
	return valid;
}
开发者ID:McTwist,项目名称:PixelMap,代码行数:55,代码来源:Level.cpp

示例4: tThrowStringException

// 抛出字符串形式异常
VOID tThrowStringException(LPCTSTR szFmt, ...)
{
	va_list argList;
	va_start(argList, szFmt);

	UINT nSize = _vsctprintf(szFmt, argList);

	STRING strMessage;
	strMessage.assign(nSize+1, _T(' '));
	_vstprintf((LPTSTR)&(strMessage[0]), szFmt, argList);
	va_end(argList);

	throw std::exception(strMessage.c_str());
}
开发者ID:jjiezheng,项目名称:pap_full,代码行数:15,代码来源:GIException.cpp

示例5: tThrowAssertException

VOID tThrowAssertException(LPCTSTR szFileName, INT nFileLine, LPCTSTR pExpr)
{
	const char *szAssertFmt = 
					_T("Assert  \r\n")
					_T("\r\n")
					_T("File:      %s\r\n")
					_T("Line:      %d\r\n")
					_T("Expr:      %s\r\n");

	UINT nSize = _sctprintf(szAssertFmt, szFileName, nFileLine, pExpr);

	STRING strMessage;
	strMessage.assign(nSize+1, _T(' '));
	_stprintf((LPTSTR)&(strMessage[0]), szAssertFmt, szFileName, nFileLine, pExpr);

	throw std::exception(strMessage.c_str());
}
开发者ID:jjiezheng,项目名称:pap_full,代码行数:17,代码来源:GIException.cpp

示例6: GetCategoricalPartNames

void DIR_LIB_SOURCE::GetCategoricalPartNames( STRINGS* aResults, const STRING& aCategory )
    throw( IO_ERROR )
{
    PN_ITER end = aCategory.size() ?
                        partnames.lower_bound( aCategory + char( '/' + 1 ) ) :
                        partnames.end();

    PN_ITER it  = aCategory.size() ?
                        partnames.upper_bound( aCategory + "/" ) :
                        partnames.begin();

    aResults->clear();

    if( useVersioning )
    {
        STRING  partName;

        while( it != end )
        {
            const char* rev = endsWithRev( *it );

            // all cached partnames have a rev string in useVersioning mode
            assert( rev );

            // partName is substring which omits the rev AND the rev separator
            partName.assign( *it, 0, rev - it->c_str() - 1 );

            aResults->push_back( partName );

            // skip over all other versions of the same partName.
            it = partnames.lower_bound( partName + char( '/' + 1 ) );
        }

    }

    else
    {
        while( it != end )
            aResults->push_back( *it++ );
    }
}
开发者ID:james-sakalaukus,项目名称:kicad,代码行数:41,代码来源:sch_dir_lib_source.cpp

示例7: GetEnv

STRING Port::GetEnv(const char * var)
{
	STRING env;
#ifdef WIN32
	size_t tLen = 0;
#ifdef UNICODE
	wchar_t path[80];
	wchar_t var2[256] = {0};
	int size = strlen(var)+1;
	mbstowcs_s(&tLen, var2, size, var, size);
	_wgetenv_s(&tLen, path, 80, var2);
#else
	char path[80];
	getenv_s(&tLen, path, 80, var);
#endif
	env = path;
#elif defined(UNIX)
	char * temp = getenv(var);
	env.assign(temp, temp+strlen(temp));
#endif
	return env;
}
开发者ID:McTwist,项目名称:PixelMap,代码行数:22,代码来源:Utility.cpp

示例8: GetRevisions

void DIR_LIB_SOURCE::GetRevisions( STRINGS* aResults, const STRING& aPartName )
    throw( IO_ERROR )
{
    aResults->clear();

    if( useVersioning )
    {
        STRING partName;

        const char* rev = endsWithRev( aPartName );
        if( rev )
            // partName is substring which omits the rev and the separator
            partName.assign( aPartName, 0, rev - aPartName.c_str() - 1 );
        else
            partName = aPartName;

        PN_ITER it  = partnames.upper_bound( partName +'/' );
        PN_ITER end = partnames.lower_bound( partName + char( '/' +1 ) );

        for( ; it != end; ++it )
        {
            const char* rev = endsWithRev( *it );
            assert( rev );
            aResults->push_back( it->substr( rev - it->c_str() ) );
        }
    }

    else
    {
        // In non-version mode, there were no revisions read in, only part
        // files without a revision.  But clients higher up expect to see
        // at least one revision in order for the API to work, so we return
        // a revision ""
        aResults->push_back( "" );
    }
}
开发者ID:james-sakalaukus,项目名称:kicad,代码行数:36,代码来源:sch_dir_lib_source.cpp

示例9: PrepareArgs

// Prepare arguments
void PixelMap::PrepareArgs()
{
	using namespace std;

	// Add parameters
	LevelPrefs prefs = LevelPrefs();

	// Init block colors
	if (texture.empty())
		DataValues::MakeColor();
	else
	{
		STRING t;
		t.assign(texture.begin(), texture.end());
		DataValues::MakeColor(t);
	}

	// Pick world version
	prefs.version = worldVersion;

	STRINGSTREAM str;
	// Slice
	if (slice.size() && slice.front() != -1)
	{
		prefs.z = (BYTE)slice.front();
		str << STR("-slice") << (int)prefs.z;
		if (slice.size() == 2 && slice.back() != 0)
		{
			prefs.flags |= CHUNKP_SINGLESLICE;
			str << STR("S");
		}
	}
	// Line heightmap
	if (height > 0)
	{
		prefs.h = (BYTE)height;
		str << STR("-height") << height;
	}
	// Gray heightmap
	else if (height == -1)
	{
		prefs.flags |= CHUNKP_GRAY;
		str << STR("-gray");
	}
	// Color heightmap
	else if (height == -2)
	{
		prefs.flags |= CHUNKP_COLOR;
		str << STR("-color");
	}
	// Solid heightmap
	else if (height == -3)
	{
		prefs.flags |= CHUNKP_SOLID;
		str << STR("-solid");
	}
	// Night
	if (night)
	{
		prefs.flags |= CHUNKP_NIGHT;
		str << STR("-night");
	}
	// Cavemode
	if (caveMode)
	{
		prefs.flags |= CHUNKP_CAVE;
		str << STR("-cave");
	}
	// Nether
	if (nether)
	{
		// Cave is only because nether is below surface
		prefs.flags |= CHUNKP_CAVE;
		str << STR("-nether");
		folder.append(STR("\\DIM-1"));
	}
	// Rotation
	if (rotation != 0)
	{
		prefs.rotation = rotation;
		str << STR("-rot") << rotation;
	}
	// No rendering
	if (noRender)
		prefs.flags |= CHUNKP_NORENDER;
	prefs.threads = (BYTE)threads;
	// Add log file
	prefs.log.assign(logFile.begin(), logFile.end());
	prefs.log = Port::ReplacePath(prefs.log);
	// Add cache folder
	prefs.cache.assign(cache.begin(), cache.end());
	// Use only these blocks
	if (!only.empty())
	{
		memset(prefs.block, false, DATAVALUES_AMOUNT);
		for (list<int>::iterator i = only.begin(); i != only.end(); ++i)
			if (*i >= 0 && *i < 256)
				prefs.block[*i] = true;
	}
//.........这里部分代码省略.........
开发者ID:McTwist,项目名称:PixelMap,代码行数:101,代码来源:PixelMap.cpp

示例10: ParseCommandLineFlags

void ParseCommandLineFlags(const char* usage,
                           int* argc, char*** argv,
                           const bool remove_flags) {
  if (*argc == 1) {
    tprintf("USAGE: %s\n", usage);
    PrintCommandLineFlags();
    exit(0);
  }

  unsigned int i = 1;
  for (i = 1; i < *argc; ++i) {
    const char* current_arg = (*argv)[i];
    // If argument does not start with a hyphen then break.
    if (current_arg[0] != '-') {
      break;
    }
    // Position current_arg after startings hyphens. We treat a sequence of
    // consecutive hyphens of any length identically.
    while (*current_arg == '-') {
      ++current_arg;
    }
    // If this is asking for usage, print the help message and abort.
    if (!strcmp(current_arg, "help") ||
        !strcmp(current_arg, "helpshort")) {
      tprintf("USAGE: %s\n", usage);
      PrintCommandLineFlags();
      exit(0);
    }
    // Find the starting position of the value if it was specified in this
    // string.
    const char* equals_position = strchr(current_arg, '=');
    const char* rhs = NULL;
    if (equals_position != NULL) {
      rhs = equals_position + 1;
    }
    // Extract the flag name.
    STRING lhs;
    if (equals_position == NULL) {
      lhs = current_arg;
    } else {
      lhs.assign(current_arg, equals_position - current_arg);
    }
    if (!lhs.length()) {
      tprintf("ERROR: Bad argument: %s\n", (*argv)[i]);
      exit(1);
    }

    // Find the flag name in the list of global flags.
    // inT32 flag
    inT32 int_val;
    if (IntFlagExists(lhs.string(), &int_val)) {
      if (rhs != NULL) {
        if (!strlen(rhs)) {
          // Bad input of the format --int_flag=
          tprintf("ERROR: Bad argument: %s\n", (*argv)[i]);
          exit(1);
        }
        if (!SafeAtoi(rhs, &int_val)) {
          tprintf("ERROR: Could not parse int from %s in flag %s\n",
                  rhs, (*argv)[i]);
          exit(1);
        }
      } else {
        // We need to parse the next argument
        if (i + 1 >= *argc) {
          tprintf("ERROR: Could not find value argument for flag %s\n",
                  lhs.string());
          exit(1);
        } else {
          ++i;
          if (!SafeAtoi((*argv)[i], &int_val)) {
            tprintf("ERROR: Could not parse inT32 from %s\n", (*argv)[i]);
            exit(1);
          }
        }
      }
      SetIntFlagValue(lhs.string(), int_val);
      continue;
    }

    // double flag
    double double_val;
    if (DoubleFlagExists(lhs.string(), &double_val)) {
      if (rhs != NULL) {
        if (!strlen(rhs)) {
          // Bad input of the format --double_flag=
          tprintf("ERROR: Bad argument: %s\n", (*argv)[i]);
          exit(1);
        }
        if (!SafeAtod(rhs, &double_val)) {
          tprintf("ERROR: Could not parse double from %s in flag %s\n",
                  rhs, (*argv)[i]);
          exit(1);
        }
      } else {
        // We need to parse the next argument
        if (i + 1 >= *argc) {
          tprintf("ERROR: Could not find value argument for flag %s\n",
                  lhs.string());
          exit(1);
//.........这里部分代码省略.........
开发者ID:0xkasun,项目名称:tesseract,代码行数:101,代码来源:commandlineflags.cpp

示例11: MakeString

STRING Port::MakeString(const char * text)
{
	STRING str;
	str.assign(text, text+strlen(text));
	return str;
}
开发者ID:McTwist,项目名称:PixelMap,代码行数:6,代码来源:Utility.cpp


注:本文中的STRING::assign方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。