本文整理汇总了C++中tstring::append方法的典型用法代码示例。如果您正苦于以下问题:C++ tstring::append方法的具体用法?C++ tstring::append怎么用?C++ tstring::append使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类tstring
的用法示例。
在下文中一共展示了tstring::append方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: reader
static bool
ReadTextFile(const TCHAR *path, tstring &buffer)
{
/* auto-detect the character encoding, to be able to parse XCSoar
6.0 task files */
FileLineReader reader(path, ConvertLineReader::AUTO);
if (reader.error())
return false;
long size = reader.size();
if (size > 65536)
return false;
else if (size < 0)
size = 4096;
buffer.reserve(size);
const TCHAR *line;
while ((line = reader.read()) != NULL) {
if (buffer.length() > 65536)
/* too long */
return false;
buffer.append(line);
buffer.append(_T("\n"));
}
return true;
}
示例2: reader
static bool
ReadTextFile(Path path, tstring &buffer)
try {
/* auto-detect the character encoding, to be able to parse XCSoar
6.0 task files */
FileLineReader reader(path, Charset::AUTO);
long size = reader.GetSize();
if (size > 65536)
return false;
else if (size < 0)
size = 4096;
buffer.reserve(size);
const TCHAR *line;
while ((line = reader.ReadLine()) != nullptr) {
if (buffer.length() > 65536)
/* too long */
return false;
buffer.append(line);
buffer.append(_T("\n"));
}
return true;
} catch (const std::runtime_error &) {
return false;
}
示例3: SetCmdLine
void Helium::SetCmdLine( int argc, const tchar_t** argv )
{
for ( int i=0; i<argc; i++ )
{
bool quote = FindCharacter( argv[i], TXT( ' ' ) ) != NULL;
if ( quote )
{
g_CmdLine.append( TXT( "\"" ) );
}
g_CmdLine.append( argv[ i ] );
if ( quote )
{
g_CmdLine.append( TXT( "\"" ) );
}
if ( i+1 < argc )
{
g_CmdLine.append( TXT( " " ) );
}
}
ProcessCmdLine( g_CmdLine.c_str(), g_Argc, g_Argv );
}
示例4: GenerateSqlInsert
int CDBCommandBuilderBase::GenerateSqlInsert(const IDBRecord& rec, tstring& buffer)
{
buffer.append(TEXT("INSERT INTO "));
WrapperIdentifier(TableSchema_->DBName.c_str(), buffer);
buffer.append(TEXT(" ("));
for (int i = 0; i < TableSchema_->Columns.size(); ++i)
{
WrapperIdentifier(TableSchema_->Columns[i].DBName.c_str(), buffer);
buffer.append(TEXT(", "));
}
*(buffer.end() - 2) = ')';
buffer.append(TEXT("VALUES ("));
for (int i = 0; i < TableSchema_->Columns.size(); ++i)
{
WrapperValue(rec.GetField(i).c_str(), TableSchema_->Columns[i].DBType, buffer);
buffer.append(TEXT(", "));
}
*(buffer.end() - 2) = ')';
return 1;
}
示例5: GetFileDescription
void CProcessTool::GetFileDescription(tstring FileName,tstring &strDescription,tstring &strCompanyName)
{
BOOL bSucceed = FALSE;
DWORD dwInfoSize = 0;
DWORD dwHandle = 0;
dwInfoSize = sizeof(VS_FIXEDFILEINFO);
strDescription = _T("");
dwInfoSize = GetFileVersionInfoSize(FileName.c_str(),&dwHandle);
if(dwInfoSize >0)
{
void *pvInfo = new TCHAR[dwInfoSize];
if(GetFileVersionInfo(FileName.c_str(),0,dwInfoSize,pvInfo))
{
struct LANGANDCODEPAGE{
WORD wLanguage;
WORD wCodePage;
}*lpTranslate;
UINT cbTranslate = 0;
if(VerQueryValue(pvInfo,_T("\\VarFileInfo\\Translation"),
(void**)&lpTranslate,&cbTranslate))
{
if(cbTranslate/sizeof(struct LANGANDCODEPAGE)>0){
const TCHAR *lpBuffer = 0;
UINT cbSizeBuf = 0;
TCHAR szSubBlock[50];
_stprintf_s(szSubBlock,sizeof(szSubBlock),_T("\\StringFileInfo\\%04x%04x\\FileDescription"),
lpTranslate[0].wLanguage,lpTranslate[0].wCodePage);
if(VerQueryValue(pvInfo,szSubBlock,(void **)&lpBuffer,&cbSizeBuf))
{
strDescription.append(lpBuffer,cbSizeBuf);
}
memset(szSubBlock,0,sizeof(szSubBlock));
_stprintf_s(szSubBlock,50,_T("\\StringFileInfo\\%04x%04x\\CompanyName"),
lpTranslate[0].wLanguage,lpTranslate[0].wCodePage);
if(VerQueryValue(pvInfo,szSubBlock,(void **)&lpBuffer,&cbSizeBuf))
{
strCompanyName.append(lpBuffer,cbSizeBuf);
}
}
}
}
}
}
示例6: initialize
bool MudGameView::initialize(const tstring& profile)
{
if (!initPluginsSystem())
{
msgBox(m_hWnd, IDS_ERROR_SCRIPTENGINE_FAILED, MB_OK | MB_ICONSTOP);
return false;
}
#ifdef _DEBUG
InputCommandTemplateUnitTests::run();
ParamsHelperUnitTests::run();
CompareObjectUnitTests::run();
#endif
if (!m_processor.init())
{
msgBox(m_hWnd, IDS_ERROR_SCRIPTENGINE_FAILED, MB_OK|MB_ICONSTOP);
return false;
}
if (!m_manager.init())
{
msgBox(m_hWnd, IDS_ERROR_INITPROFILES_FAILED, MB_OK|MB_ICONSTOP);
return false;
}
tstring error;
if (!m_manager.loadProfile(profile, &error))
{
tstring msg;
loadString(IDS_ERROR_LASTLOAD_FAILED, &msg);
tstring profile(m_manager.getProfileGroup());
profile.append(L" - ");
profile.append(m_manager.getProfileName());
tstring_replace(&msg, L"%s", profile);
if (msgBox(m_hWnd, msg, error, MB_YESNO|MB_ICONSTOP) != IDYES) { return false; }
Profile p(m_manager.getProfile());
p.name = default_profile_name;
if (!m_manager.loadProfile(p, &error))
{
if (!m_manager.createEmptyProfile(p))
{
msgBox(m_hWnd, IDS_ERROR_NEWPROFILE_FAILED, MB_OK|MB_ICONSTOP);
return false;
}
}
}
return true;
}
示例7: GenerateFieldConditionStr
void CDBCommandBuilderBase::GenerateFieldConditionStr(const DBColumnSchema& col,const tstring& val, tstring& buffer)
{
buffer.append(col.DBName);
if(col.DBType->IsNull(val.c_str()))
{
buffer.append(TEXT(" IS null"));
}
else
{
buffer.append(TEXT(" = "));
WrapperValue(val.c_str(), col.DBType, buffer);
}
}
示例8: GenerateSqlSelect
int CDBCommandBuilderBase::GenerateSqlSelect(tstring& buffer)
{
buffer.append(TEXT("SELECT * FROM "));
WrapperIdentifier(TableSchema_->DBName.c_str(), buffer);
return 1;
}
示例9: GenerateConditionStr
void CDBCommandBuilderBase::GenerateConditionStr(const IDBRecord& rec, const CDBRecordComparison& cmp, tstring& buffer)
{
if(cmp.KeyFields().size() > 0)
{
buffer.append(TEXT(" WHERE "));
for (int i = 0; i < cmp.KeyFields().size(); ++i)
{
int field = cmp.KeyFields()[i];
GenerateFieldConditionStr((*TableSchema_)[field], rec.GetField(field), buffer);
buffer.append(TEXT(" AND "));
}
*(buffer.end() - 4) = '\0';
}
}
示例10: GenerateSqlDelete
int CDBCommandBuilderBase::GenerateSqlDelete(const IDBRecord& rec, const CDBRecordComparison& cmp, tstring& buffer)
{
buffer.append(TEXT("DELETE FROM "));
WrapperIdentifier(TableSchema_->DBName.c_str(), buffer);
GenerateConditionStr(rec, cmp, buffer);
return 1;
}
示例11:
void NumberFormatter::append0(tstring& str, int64_t value, int width)
{
FIRTEX_ASSERT2 (width > 0 && width < 64);
char buffer[64];
std::sprintf(buffer, "%0*" I64_FMT"d", width, (I64_VAL)value);
str.append(buffer);
}
示例12: append
void NumberFormatter::append(tstring& str, double value, int width, int precision)
{
FIRTEX_ASSERT2 (width > 0 && width < 64 && precision >= 0 && precision < width);
char buffer[64];
std::sprintf(buffer, "%*.*f", width, precision, value);
str.append(buffer);
}
示例13: GenerateSqlUpdate
int CDBCommandBuilderBase::GenerateSqlUpdate(const IDBRecord& ori, const IDBRecord& cur, const CDBRecordComparison& cmp, tstring& buffer)
{
buffer.append(TEXT("UPDATE "));
WrapperIdentifier(TableSchema_->DBName.c_str(), buffer);
buffer.append(TEXT(" SET "));
for (int i = 0; i < TableSchema_->Columns.size(); ++i)
{
GenerateFieldAssignmentStr(TableSchema_->Columns[i], cur.GetField(i), buffer);
buffer.append(TEXT(", "));
}
*(buffer.end() - 2) = ' ';
GenerateConditionStr(ori, cmp, buffer);
return 1;
}
示例14: lines
static void
FormatDecodedMETAR(const METAR &metar, const ParsedMETAR &parsed,
tstring &output)
{
/*
00 ## Hamburg-Fuhlsbuettel, Germany (EDDH) 53-38N 010-00E 15M ##
01 ## Dec 14, 2011 - 06:20 PM EST / 2011.12.14 2320 UTC ##
02 ## Wind: from the SW (220 degrees) at 18 MPH (16 KT):0 ##
03 ## Visibility: greater than 7 mile(s):0 ##
04 ## Sky conditions: mostly cloudy ##
05 ## Temperature: 41 F (5 C) ##
06 ## Dew Point: 35 F (2 C) ##
07 ## Relative Humidity: 80% ##
08 ## Pressure (altimeter): 29.47 in. Hg (0998 hPa) ##
*/
LineSplitter lines(metar.decoded);
for (unsigned i = 0; lines.HasNext(); ++i) {
auto range = lines.Next();
if (i == 0) {
// Try to provide a new title line
if (parsed.name_available) {
StaticString<256> buffer;
buffer.Format(_("METAR for %s:"), parsed.name.c_str());
output += buffer;
output += '\n';
} else
output.append(range.first, range.second);
output += '\n';
} else if (i == 1) {
// ignore second line and continue without line break
} else {
if (!FormatDecodedMETARLine(range.first, range.second, parsed, output)) {
output.append(range.first, range.second);
output += '\n';
}
}
}
}
示例15: WrapperValue
int CDBCommandBuilderBase::WrapperValue(const tchar* val, IDBDataType const* type, tstring& buffer)
{
_ASSERT(type && val);
if(type->IsNull(val))
{
buffer.append(TEXT("null"));
}
else
{
switch(type->Category())
{
case EnumDBDataTypeCategory::DBString:
{
buffer.append(TEXT("'"));
// convert '\'' to "''"
const tchar* pTail = val + _tcslen(val);
const tchar* pPosPre = val;
const tchar* pPosCur = 0;
while(pPosPre < pTail && (pPosCur = _tcschr(pPosPre, '\'')) != NULL)
{
if(pPosCur - pPosPre > 1)
{
buffer.append(pPosPre, pPosCur);
buffer.append(TEXT("''"));
}
pPosPre = pPosCur + 1;
}
if(pPosPre < pTail)
{
buffer.append(pPosPre, pTail);
}
buffer.append(TEXT("'"));
}
break;
case EnumDBDataTypeCategory::DBNumeric:
{
buffer.append(val);
}
break;
case EnumDBDataTypeCategory::DBBlob:
throw std::exception();
break;
}
}
return 1;
}