Exemplo n.º 1
0
//---------------------------------------------------------------------------
WideString SplitStrBy(WideString &S, WideString SplitChar)
{
    WideString result = "";
    int p = S.Pos(SplitChar);
    if (p > 0){
        result = S.SubString(1, p - 1);
        S = S.SubString(p + SplitChar.Length(), S.Length());
    }else{
        result = S;
        S = "";
    }
    return result;
}
Exemplo n.º 2
0
//---------------------------------------------------------------------------
int CountStr(WideString S, WideString CountChar)//CountCharの数を数える
{
    int result = 0;
    while (true){
        int p = S.Pos(CountChar);
        if (p > 0){
            result++;
            S = S.SubString(p + CountChar.Length(), S.Length());
        }else{
            break;
        }
    }
    return result;
}
Exemplo n.º 3
0
//---------------------------------------------------------------------------
WideString ReplaceText(WideString S, WideString From, WideString To)
{
    WideString result;
    while (int len = S.Length()){
        int p = S.Pos(From);
        if (p){
            result += S.SubString(1, p - 1) + To;
            S = S.SubString(p + From.Length(), len);
        }else{
            result += S;
            S = "";
        }
    }
    return result;
}
Exemplo n.º 4
0
//---------------------------------------------------------------------------
WideString WideStringReplace(const WideString wsInput,
        const WideString OldPattern, const WideString NewPattern,
        TReplaceFlags Flags)
{
    /* §@ªÌ: ¿½¨R Xiao Chong
    ** Email : [email protected]
    ** To-Do : implement rfIgnoreCase
    */

    int pos = 0;
    int old_pattern_len = 0;
    WideString result(wsInput);


    if (0 == (pos = result.Pos(OldPattern))) //no found
        return result;

    old_pattern_len = OldPattern.Length();
    result.Delete(pos, old_pattern_len);
    result.Insert(NewPattern, pos);

    if (Flags.Contains(rfReplaceAll))
    {
        while (0 != (pos = result.Pos(OldPattern)))
        {
            result.Delete(pos, old_pattern_len);
            result.Insert(NewPattern, pos);
        }
    }

    return result;
}
Exemplo n.º 5
0
// 表格绘制.
void DataGrids::DrawGrids(HDC _hdc)
{
	// 绘制x/y的箭头.
	WideString xStr = "电压(V)";
	WideString yStr = "时间(S)";

	m_stGrp = new Gdiplus::Graphics(_hdc);
	m_stGrp->SetSmoothingMode(Gdiplus::SmoothingModeHighQuality);

	/*FontFamily fontFamily(L"楷体_GB2312");
	Font font(&fontFamily, 30, FontStyleRegular, UnitPixel);
	*/
	Gdiplus::SolidBrush solidBrush(Gdiplus::Color(255, 0, 0, 255));
	Gdiplus::Pen p(Gdiplus::Color(255, 0, 0, 0),1);
	Gdiplus::AdjustableArrowCap cap(8,4,true);
	Gdiplus::Font font(L"楷体",12);
	Gdiplus::SolidBrush s( Gdiplus::Color(255, 0, 0, 0));

#define X(_x) UserX((_x)+xAxisOffset)
#define Y(_y) UserY((_y)+yAxisOffset)
	// 刻度线.Y轴.
	p.SetColor(Gdiplus::Color(255, 0, 0, 255));
	for(int i = 0; i * yMarkSpace < m_iHeight-yMarkSpace-8;i++)
	{
		m_stGrp->DrawLine(&p,X(0),Y(0+i*yMarkSpace),X(yMarkHeight+(((i%5)==0)?yMarkHeight:0)),Y(0+i*yMarkSpace));
	}

	for(int i = 0; i * yMarkSpace < m_iWidth-xMarkSpace-8;i++)
	{
		m_stGrp->DrawLine(&p,X(i*xMarkSpace),Y(0),X(i*xMarkSpace),Y(xMarkHeight+((i%5)==0?xMarkHeight:0)));
	}
	p.SetColor(Gdiplus::Color(255, 0, 0, 0));
	// Draw X,Y axises.
	p.SetCustomEndCap(&cap);
	m_stGrp->DrawLine(&p,X(0),Y(0),X(0),Y(m_iHeight)); // Draw Y axis
	m_stGrp->DrawLine(&p,X(0),Y(0),X(m_iWidth),Y(0));  // Draw X axis

	m_stGrp->DrawString(xStr.c_bstr(),xStr.Length(),&font,Gdiplus::PointF(30,10),&s);
	m_stGrp->DrawString(yStr.c_bstr(),yStr.Length(),&font,Gdiplus::PointF(m_iWidth-80,m_iHeight-50),&s);

#undef X(_x)
#undef Y(_y)

	DrawCurve();

	delete m_stGrp;
}
//---------------------------------------------------------------------------
WideString convertToURL(WideString FileName)
{
//конвертация имени файла из обычного в URL для ОО
// "\\blank.doc" два обратных слеша не допускаются!!!
    AnsiString URL = "";
    for (int i = 1; i <= FileName.Length(); i++)
    {
        char ch = (char)FileName[i];
        switch (ch)
        {
            case ' ' :
                URL += "%20";
                break;
            case '\\' :
                URL += "/";
                break;
            default :
                URL += ch;
        }
    }
    return "file://localhost/" + URL;
}
void MyActiveSelectionObserver::getText(ITextStoryThread* textStoryThread)
{
	WideString text;
	do
	{
		InterfacePtr<ITextModel> textModel(textStoryThread->QueryTextModel());
		if (textModel == nil) {
			break;
		}

		int32 span=(-1);
		TextIndex at = textStoryThread->GetTextStart(&span);
		TextIterator beginTextChunk(textModel, at);
		TextIterator endTextChunk(textModel, at + span);

		std::copy(beginTextChunk, endTextChunk, std::back_inserter(text));
		int32 len=text.Length();
		if(len>=1)
		{
			CAlert::InformationAlert("cell text is :"+text);
		}

	} while(false);
}
Exemplo n.º 8
0
void TFStream::PutW(WideString&s)
{
int l=s.Length();
Write(&l,sizeof(int));
Write(s.c_bstr(),l*sizeof(wchar_t));
}