本文整理汇总了C++中CFX_WideString::GetLength方法的典型用法代码示例。如果您正苦于以下问题:C++ CFX_WideString::GetLength方法的具体用法?C++ CFX_WideString::GetLength怎么用?C++ CFX_WideString::GetLength使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CFX_WideString
的用法示例。
在下文中一共展示了CFX_WideString::GetLength方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: PDF_GetPageText
void PDF_GetPageText(CFX_ByteStringArray& lines, CPDF_Document* pDoc, CPDF_Dictionary* pPage,
int iMinWidth, FX_DWORD flags)
{
lines.RemoveAll();
CFX_WideStringArray wlines;
PDF_GetPageText_Unicode(wlines, pDoc, pPage, iMinWidth, flags);
for (int i = 0; i < wlines.GetSize(); i ++) {
CFX_WideString wstr = wlines[i];
CFX_ByteString str;
for (int c = 0; c < wstr.GetLength(); c ++) {
str += CharFromUnicodeAlt(wstr[c], FXSYS_GetACP(), "?");
}
lines.Add(str);
}
}
示例2: if
CFX_WideString CBC_OnedCode128Writer::FilterContents(
const CFX_WideStringC& contents) {
CFX_WideString filterChineseChar;
FX_WCHAR ch;
for (int32_t i = 0; i < contents.GetLength(); i++) {
ch = contents.GetAt(i);
if (ch > 175) {
i++;
continue;
}
filterChineseChar += ch;
}
CFX_WideString filtercontents;
if (m_codeFormat == BC_CODE128_B) {
for (int32_t i = 0; i < filterChineseChar.GetLength(); i++) {
ch = filterChineseChar.GetAt(i);
if (ch >= 32 && ch <= 126) {
filtercontents += ch;
} else {
continue;
}
}
} else if (m_codeFormat == BC_CODE128_C) {
for (int32_t i = 0; i < filterChineseChar.GetLength(); i++) {
ch = filterChineseChar.GetAt(i);
if (ch >= 32 && ch <= 106) {
filtercontents += ch;
} else {
continue;
}
}
} else {
filtercontents = contents;
}
return filtercontents;
}
示例3: OnNotifySelChanged
void CPWL_ListBox::OnNotifySelChanged(bool bKeyDown,
bool& bExit,
uint32_t nFlag) {
if (!m_pFillerNotify)
return;
bool bRC = true;
CFX_WideString swChange = GetText();
CFX_WideString strChangeEx;
int nSelStart = 0;
int nSelEnd = swChange.GetLength();
m_pFillerNotify->OnBeforeKeyStroke(GetAttachedData(), swChange, strChangeEx,
nSelStart, nSelEnd, bKeyDown, bRC, bExit,
nFlag);
}
示例4: ResetData
void CScript_HostPseudoModel::ResetData(CFXJSE_Arguments* pArguments) {
int32_t iLength = pArguments->GetLength();
if (iLength < 0 || iLength > 1) {
ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"resetData");
return;
}
CXFA_FFNotify* pNotify = m_pDocument->GetNotify();
if (!pNotify) {
return;
}
CFX_WideString wsExpression;
if (iLength >= 1) {
CFX_ByteString bsExpression = pArguments->GetUTF8String(0);
wsExpression = CFX_WideString::FromUTF8(bsExpression.AsStringC());
}
if (wsExpression.IsEmpty()) {
pNotify->ResetData();
return;
}
int32_t iStart = 0;
CFX_WideString wsName;
CXFA_Node* pNode = nullptr;
int32_t iExpLength = wsExpression.GetLength();
while (iStart < iExpLength) {
iStart = XFA_FilterName(wsExpression.AsStringC(), iStart, wsName);
CXFA_ScriptContext* pScriptContext = m_pDocument->GetScriptContext();
if (!pScriptContext) {
return;
}
CXFA_Object* pObject = pScriptContext->GetThisObject();
if (!pObject) {
return;
}
uint32_t dwFlag = XFA_RESOLVENODE_Children | XFA_RESOLVENODE_Parent |
XFA_RESOLVENODE_Siblings;
XFA_RESOLVENODE_RS resoveNodeRS;
int32_t iRet = pScriptContext->ResolveObjects(pObject, wsName.AsStringC(),
resoveNodeRS, dwFlag);
if (iRet < 1 || !resoveNodeRS.nodes[0]->IsNode()) {
continue;
}
pNode = resoveNodeRS.nodes[0]->AsNode();
pNotify->ResetData(pNode->GetWidgetData());
}
if (!pNode) {
pNotify->ResetData();
}
}
示例5: SetText
void CPDF_VariableText::SetText(const FX_WCHAR* text) {
DeleteWords(CPVT_WordRange(GetBeginWordPlace(), GetEndWordPlace()));
CFX_WideString swText = text;
CPVT_WordPlace wp(0, 0, -1);
CPVT_SectionInfo secinfo;
if (CSection* pSection = m_SectionArray.GetAt(0))
pSection->m_SecInfo = secinfo;
int32_t nCharCount = 0;
for (int32_t i = 0, sz = swText.GetLength(); i < sz; i++) {
if (m_nLimitChar > 0 && nCharCount >= m_nLimitChar)
break;
if (m_nCharArray > 0 && nCharCount >= m_nCharArray)
break;
uint16_t word = swText.GetAt(i);
switch (word) {
case 0x0D:
if (m_bMultiLine) {
if (swText.GetAt(i + 1) == 0x0A)
i += 1;
wp.nSecIndex++;
wp.nLineIndex = 0;
wp.nWordIndex = -1;
AddSection(wp, secinfo);
}
break;
case 0x0A:
if (m_bMultiLine) {
if (swText.GetAt(i + 1) == 0x0D)
i += 1;
wp.nSecIndex++;
wp.nLineIndex = 0;
wp.nWordIndex = -1;
AddSection(wp, secinfo);
}
break;
case 0x09:
word = 0x20;
default:
wp = InsertWord(wp, word, FXFONT_DEFAULT_CHARSET, nullptr);
break;
}
nCharCount++;
}
}
示例6: OnSetFocus
void CFFL_ComboBox::OnSetFocus(CPWL_Wnd* pWnd) {
ASSERT(m_pFormFillEnv);
if (pWnd->GetClassName() == PWL_CLASSNAME_EDIT) {
CPWL_Edit* pEdit = (CPWL_Edit*)pWnd;
pEdit->SetCharSet(FXFONT_GB2312_CHARSET);
pEdit->SetCodePage(936);
pEdit->SetReadyToInput();
CFX_WideString wsText = pEdit->GetText();
int nCharacters = wsText.GetLength();
CFX_ByteString bsUTFText = wsText.UTF16LE_Encode();
unsigned short* pBuffer = (unsigned short*)bsUTFText.c_str();
m_pFormFillEnv->OnSetFieldInputFocus(pBuffer, nCharacters, true);
}
}
示例7: return
CFX_WideString CBC_ErrorCorrection::encodeECC200(CFX_WideString codewords,
CBC_SymbolInfo* symbolInfo,
int32_t& e) {
if (codewords.GetLength() != symbolInfo->m_dataCapacity) {
e = BCExceptionIllegalArgument;
return (FX_WCHAR*)"";
}
CFX_WideString sb;
sb += codewords;
int32_t blockCount = symbolInfo->getInterleavedBlockCount();
if (blockCount == 1) {
CFX_WideString ecc =
createECCBlock(codewords, symbolInfo->m_errorCodewords, e);
BC_EXCEPTION_CHECK_ReturnValue(e, (FX_WCHAR*)"");
sb += ecc;
} else {
CFX_Int32Array dataSizes;
dataSizes.SetSize(blockCount);
CFX_Int32Array errorSizes;
errorSizes.SetSize(blockCount);
CFX_Int32Array startPos;
startPos.SetSize(blockCount);
for (int32_t i = 0; i < blockCount; i++) {
dataSizes[i] = symbolInfo->getDataLengthForInterleavedBlock(i + 1);
errorSizes[i] = symbolInfo->getErrorLengthForInterleavedBlock(i + 1);
startPos[i] = 0;
if (i > 0) {
startPos[i] = startPos[i - 1] + dataSizes[i];
}
}
for (int32_t block = 0; block < blockCount; block++) {
CFX_WideString temp;
for (int32_t d = block; d < symbolInfo->m_dataCapacity; d += blockCount) {
temp += (FX_WCHAR)codewords.GetAt(d);
}
CFX_WideString ecc = createECCBlock(temp, errorSizes[block], e);
BC_EXCEPTION_CHECK_ReturnValue(e, (FX_WCHAR*)"");
int32_t pos = 0;
for (int32_t l = block; l < errorSizes[block] * blockCount;
l += blockCount) {
sb.SetAt(symbolInfo->m_dataCapacity + l, ecc.GetAt(pos++));
}
}
}
return sb;
}
示例8: determineConsecutiveDigitCount
int32_t CBC_HighLevelEncoder::determineConsecutiveDigitCount(CFX_WideString msg,
int32_t startpos) {
int32_t count = 0;
int32_t len = msg.GetLength();
int32_t idx = startpos;
if (idx < len) {
FX_WCHAR ch = msg.GetAt(idx);
while (isDigit(ch) && idx < len) {
count++;
idx++;
if (idx < len) {
ch = msg.GetAt(idx);
}
}
}
return count;
}
示例9: FX_LocaleMgr_Create
IFX_LocaleMgr* FX_LocaleMgr_Create(const FX_WCHAR* pszLocalPath,
FX_WORD wDefaultLCID) {
void* pPathHandle = FX_OpenFolder(pszLocalPath);
if (!pPathHandle) {
return NULL;
}
CFX_LocaleMgr* pLocaleMgr = new CFX_LocaleMgr(wDefaultLCID);
CFX_WideString wsFileName;
FX_BOOL bFolder = FALSE;
while (FX_GetNextFile(pPathHandle, wsFileName, bFolder)) {
if (!bFolder) {
if (wsFileName.GetLength() < 4) {
continue;
}
CFX_WideString wsExt = wsFileName.Right(4);
wsExt.MakeLower();
if (wsExt != L".xml") {
continue;
}
CFX_WideString wsFullPath(pszLocalPath);
wsFullPath += L"\\" + wsFileName;
IFX_FileRead* pRead = FX_CreateFileRead(wsFullPath);
if (!pRead) {
continue;
}
CXML_Element* pXmlLocale = CXML_Element::Parse(pRead);
pRead->Release();
CFX_ByteString bssp = pXmlLocale->GetNamespace();
if (bssp == "http://www.foxitsoftware.com/localization") {
CFX_WideString wsLCID = pXmlLocale->GetAttrValue("", "lcid");
wchar_t* pEnd = NULL;
FX_DWORD dwLCID = wcstol(wsLCID, &pEnd, 16);
if (pLocaleMgr->m_lcid2xml.GetValueAt((void*)(uintptr_t)dwLCID)) {
delete pXmlLocale;
} else {
pLocaleMgr->m_lcid2xml.SetAt((void*)(uintptr_t)dwLCID, pXmlLocale);
}
} else {
delete pXmlLocale;
}
}
}
FX_CloseFolder(pPathHandle);
return pLocaleMgr;
}
示例10: SetText
void CFDE_TxtEdtEngine::SetText(const CFX_WideString& wsText) {
ResetEngine();
int32_t nLength = wsText.GetLength();
if (nLength > 0) {
CFX_WideString wsTemp;
FX_WCHAR* lpBuffer = wsTemp.GetBuffer(nLength);
FXSYS_memcpy(lpBuffer, wsText.c_str(), nLength * sizeof(FX_WCHAR));
ReplaceParagEnd(lpBuffer, nLength, FALSE);
wsTemp.ReleaseBuffer(nLength);
if (m_nLimit > 0 && nLength > m_nLimit) {
wsTemp.Delete(m_nLimit, nLength - m_nLimit);
nLength = m_nLimit;
}
m_pTxtBuf->SetText(wsTemp);
}
m_pTxtBuf->Insert(nLength, &m_wLineEnd, 1);
RebuildParagraphs();
}
示例11: FindFirst
FX_BOOL CPDF_TextPageFind::FindFirst(const CFX_WideString& findwhat,
int flags,
int startPos) {
if (!m_pTextPage)
return FALSE;
if (m_strText.IsEmpty() || m_bMatchCase != (flags & FPDFTEXT_MATCHCASE))
m_strText = m_pTextPage->GetPageText();
CFX_WideString findwhatStr = findwhat;
m_findWhat = findwhatStr;
m_flags = flags;
m_bMatchCase = flags & FPDFTEXT_MATCHCASE;
if (m_strText.IsEmpty()) {
m_IsFind = FALSE;
return TRUE;
}
FX_STRSIZE len = findwhatStr.GetLength();
if (!m_bMatchCase) {
findwhatStr.MakeLower();
m_strText.MakeLower();
}
m_bMatchWholeWord = flags & FPDFTEXT_MATCHWHOLEWORD;
m_findNextStart = startPos;
if (startPos == -1)
m_findPreStart = m_strText.GetLength() - 1;
else
m_findPreStart = startPos;
m_csFindWhatArray.clear();
int i = 0;
while (i < len) {
if (findwhatStr.GetAt(i) != ' ')
break;
i++;
}
if (i < len)
ExtractFindWhat(findwhatStr);
else
m_csFindWhatArray.push_back(findwhatStr);
if (m_csFindWhatArray.empty())
return FALSE;
m_IsFind = TRUE;
m_resStart = 0;
m_resEnd = -1;
return TRUE;
}
示例12: GetTitle
CFX_WideString CPDF_Bookmark::GetTitle()
{
if (!m_pDict) {
return CFX_WideString();
}
CPDF_String* pString = (CPDF_String*)m_pDict->GetElementValue("Title");
if (pString == NULL || pString->GetType() != PDFOBJ_STRING) {
return CFX_WideString();
}
CFX_WideString title = pString->GetUnicodeText();
FX_LPWSTR buf = title.LockBuffer();
int len = title.GetLength(), i;
for (i = 0; i < len; i ++)
if (buf[i] < 0x20) {
buf[i] = 0x20;
}
title.ReleaseBuffer(len);
return title;
}
示例13: dataCodewords
void CBC_PDF417::generateBarcodeLogic(CFX_WideString msg,
int32_t errorCorrectionLevel,
int32_t& e) {
int32_t errorCorrectionCodeWords =
CBC_PDF417ErrorCorrection::getErrorCorrectionCodewordCount(
errorCorrectionLevel, e);
if (e != BCExceptionNO)
return;
CFX_WideString highLevel =
CBC_PDF417HighLevelEncoder::encodeHighLevel(msg, m_compaction, e);
if (e != BCExceptionNO)
return;
int32_t sourceCodeWords = highLevel.GetLength();
CFX_ArrayTemplate<int32_t>* dimension =
determineDimensions(sourceCodeWords, errorCorrectionCodeWords, e);
if (e != BCExceptionNO)
return;
int32_t cols = dimension->GetAt(0);
int32_t rows = dimension->GetAt(1);
delete dimension;
int32_t pad = getNumberOfPadCodewords(sourceCodeWords,
errorCorrectionCodeWords, cols, rows);
if (sourceCodeWords + errorCorrectionCodeWords + 1 > 929) {
e = BCExceptionEncodedMessageContainsTooManyCodeWords;
return;
}
int32_t n = sourceCodeWords + pad + 1;
CFX_WideString sb;
sb += (FX_WCHAR)n;
sb += highLevel;
for (int32_t i = 0; i < pad; i++) {
sb += (FX_WCHAR)900;
}
CFX_WideString dataCodewords(sb);
CFX_WideString ec = CBC_PDF417ErrorCorrection::generateErrorCorrection(
dataCodewords, errorCorrectionLevel, e);
if (e != BCExceptionNO)
return;
CFX_WideString fullCodewords = dataCodewords + ec;
m_barcodeMatrix = pdfium::MakeUnique<CBC_BarcodeMatrix>(rows, cols);
encodeLowLevel(fullCodewords, cols, rows, errorCorrectionLevel,
m_barcodeMatrix.get());
}
示例14:
CFX_WideString CBC_EAN8::Preprocess(const CFX_WideStringC& contents) {
CFX_WideString encodeContents =
static_cast<CBC_OnedEAN8Writer*>(m_pBCWriter.get())
->FilterContents(contents);
int32_t length = encodeContents.GetLength();
if (length <= 7) {
for (int32_t i = 0; i < 7 - length; i++)
encodeContents = FX_WCHAR('0') + encodeContents;
CFX_ByteString byteString = encodeContents.UTF8Encode();
int32_t checksum = static_cast<CBC_OnedEAN8Writer*>(m_pBCWriter.get())
->CalcChecksum(byteString);
encodeContents += FX_WCHAR(checksum - 0 + '0');
}
if (length > 8)
encodeContents = encodeContents.Mid(0, 8);
return encodeContents;
}
示例15: ValidateCanonicalDateTime
FX_BOOL CXFA_LocaleValue::ValidateCanonicalDateTime(
const CFX_WideString& wsDateTime) {
CFX_WideString wsDate, wsTime;
if (wsDateTime.IsEmpty()) {
return FALSE;
}
int nSplitIndex = -1;
nSplitIndex = wsDateTime.Find('T');
if (nSplitIndex < 0) {
nSplitIndex = wsDateTime.Find(' ');
}
if (nSplitIndex < 0) {
return FALSE;
}
wsDate = wsDateTime.Left(nSplitIndex);
wsTime = wsDateTime.Right(wsDateTime.GetLength() - nSplitIndex - 1);
CFX_Unitime dt;
return ValidateCanonicalDate(wsDate, dt) && ValidateCanonicalTime(wsTime);
}