阅读内容 

将Text转换为Html(下)

[日期:2001-01-12] 来源:yesky  作者:符东亮 [字体: ]
//“保存”菜单项的OnClick事件:

void __fastcall TForm1::MenuSaveClick(TObject *Sender)

{

//保存文件

if(SaveDialog1-$#@62;Execute())

RichEdit2-$#@62;Lines-$#@62;SaveToFile(SaveDialog1-$#@62;FileName);

}

//--------------------------------------------------------------

//“退出”菜单项的OnClick事件:

void __fastcall TForm1::MenuExitClick(TObject *Sender)

{

Close();

}

//--------------------------------------------------------------

//“开始”菜单项的OnClick事件:

void __fastcall TForm1::MenuStartClick(TObject *Sender)

{

AnsiString StrLine,StrI,StrJ,StrSpaces;

int SpacesLen,IndentCount;

int CurIndent=0;

RichEdit2-$#@62;Lines-$#@62;Clear();

RichEdit2-$#@62;Lines-$#@62;Add("$#@60;HTML$#@62;");

RichEdit2-$#@62;Lines-$#@62;Add("$#@60;head$#@62;");

RichEdit2-$#@62;Lines-$#@62;Add("$#@60;title$#@62;Untitled Document$#@60;/title$#@62;");

RichEdit2-$#@62;Lines-$#@62;Add("$#@60;meta http-equiv=\"Content-Type\" content=\"text/HTML; charset=gb2312\"$#@62;");

RichEdit2-$#@62;Lines-$#@62;Add("$#@60;/head$#@62;");

RichEdit2-$#@62;Lines-$#@62;Add("");

RichEdit2-$#@62;Lines-$#@62;Add("$#@60;body bgcolor=\"#FFFFFF\" text=\"#000000\"$#@62;");

//循环转换每一行

for(int i=0;i$#@60;RichEdit1-$#@62;Lines-$#@62;Count;i++)

{

SpacesLen=0;

StrI=RichEdit1-$#@62;Lines-$#@62;Strings[i];

//检测有多少空格

do

{

SpacesLen++;

}

while (StrI.SubString(SpacesLen,1)==" ");

//加上空格

StrLine=AnsiString::StringOfChar(" ", SpacesLen-1);

//IndentCount为本行需要缩进数

IndentCount=(SpacesLen-1)/2;

//进行缩进,CurIndent为已经缩进数

if(IndentCount$#@62;CurIndent)

{

for(int k=0;k$#@60;IndentCount-CurIndent;k++)

{

StrSpaces=AnsiString::StringOfChar(" ", (k+CurIndent) * 2);

RichEdit2-$#@62;Lines-$#@62;Add(StrSpaces+"$#@60;blockquote$#@62;");

}

}

else

{

for(int k=CurIndent-IndentCount;k$#@62;0;k--)

{

StrSpaces=AnsiString::StringOfChar(" ", (k+CurIndent-2) * 2);

RichEdit2-$#@62;Lines-$#@62;Add(StrSpaces+"$#@60;/blockquote$#@62;");

}

}

CurIndent=IndentCount;

//去掉所有空格

StrI=StrI.Trim();

StrLine+="$#@60;p$#@62;";

//转换特殊符号

for(int j=1;j$#@60;=StrI.Length();j++)

{

StrJ=StrI.SubString(j,1);

if(StrJ=="&")

StrLine+="&";

else if(StrJ=="\"")

StrLine+=""";

else if(StrJ=="$#@60;")

StrLine+="$#@60;";

else if(StrJ=="$#@62;")

StrLine+="$#@62;";

else

StrLine+=StrJ;

}

StrLine+="$#@60;/p$#@62;";

RichEdit2-$#@62;Lines-$#@62;Add(StrLine);

}

//根据已经缩进数用$#@60;/blockquote$#@62;进行配对

for(int k=CurIndent-IndentCount;k$#@62;0;k--)

{

StrSpaces=AnsiString::StringOfChar(" ", (k+CurIndent-2) * 2);

RichEdit2-$#@62;Lines-$#@62;Add(StrSpaces+"$#@60;/blockquote$#@62;");

}

RichEdit2-$#@62;Lines-$#@62;Add("$#@60;/body$#@62;");

RichEdit2-$#@62;Lines-$#@62;Add("$#@60;/HTML$#@62;");

if(Application-$#@62;MessageBox("文件已经转换成功!\n是否保存?","转换成功",48+MB_YESNO)==IDYES)

MenuSaveClick(NULL);

}

//--------------------------------------------------------------

//“关于”菜单项的OnClick事件:

void __fastcall TForm1::MenuAboutClick(TObject *Sender)

{

Application-$#@62;MessageBox("作者:符东亮","关于...",64);

}

//--------------------------------------------------------------

  以上程序在Win98/Win2000,Borland C++ Builder 5.0 下运行通过。

阅读:
录入:

推荐 】 【 打印
相关新闻      
本文评论       全部评论
发表评论
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款


点评: 字数
姓名:
Advertisement
内容查询


Advertisement