捐赠 | 广告 | 注册 | 发布 | 上传 | 关于我们    
  沪ICP备05001939号 DELPHI盒子 | 盒子论坛 | 盒子文章 | 盒子问答悬赏 | 最新更新 | 论坛检索 | 下载中心 | 高级搜索    
  精品专区 | 繁體中文 | 奖励公告栏 | 直通车账号登陆 | 关闭GOOGLE广告 | 临时留言    
盒子资源分类
全部展开 - 全部合拢
纯文本文件转换为HTML演示
关键字:TextToHtml Text2Html 纯文本 转换
来 自:原创
平 台:Win9x,Win2k/XP/NT,Win2003 下载所需:0 火柴
深浅度:初级 完成时间:2006/5/17
发布者:monkey_cn 发布时间:2006/5/17
编辑器:DELPHI7 语  种:简体中文
分 类:不常用 下载浏览:593/9156
加入到我的收藏
下载错误报错
登陆以后才能下载
 用户名:
 密 码:
自动登陆(30天有效)
图片如果打不开,说明流量不够了,请稍候下载……
纯文本文件转换为HTML演示

在做自己的项目时随手写的,觉得挺实用的,就贴出来与大家分享.
参考了盒子里面收入的pas2html工具的代码,核心代码就是这个函数:

{
  功能:把文本文件Filename的文本转换成html代码,返回值是生成的html代码,格式如下
   result:='<span> 生成的文本的html代码 </span>'
}
function TextToHtml(const Filename: string):string;
var
  RawText: TStringList;
  Checker: TStringList;
  HtmlText: TStringList;
  I, J, K, L: Integer;
  S, Str, Tmp, TmpRes: string;
const
  TAB = 9;
  SPACE = 32;
  procedure StrSlice(const Str: string; Source: TStrings);
  var
    I, J, K: Integer;
    S: string;
    Follow: Boolean;
  begin
    if (Length(Str) > 1) then
    begin
      I := 1;
      while (I <= Length(Str)) do
      begin
        // white
        if (Str[I] = Chr(SPACE)) or (Str[I] = Chr(TAB)) then
        begin
          J := I + 1;
          Follow := TRUE;
          while ((J <= Length(Str)) and Follow) do
          if ((Str[J] = Chr(SPACE)) or (Str[J] = Chr(TAB))) then
          Inc(J)
          else
          Follow := FALSE;
          S := '';
          for K := I to J - 1 do
          S := S + Str[K];
          Source.Add(S);
          I := J;
        end
        else
        begin
          J := I + 1;
          Follow := TRUE;
          while ((J <= Length(Str)) and Follow) do
          if ((Str[J] = Chr(SPACE)) or (Str[J] = Chr(TAB))) then
          Follow := FALSE
          else
          Inc(J);
          S := '';
          for K := I to J - 1 do
          S := S + Str[K];
          Source.Add(S);
          I := J;

        end;
      end;
    end
    else
      Source.Add(Str);
  end;
begin
  RawText := TStringList.Create; // oryginalny plik
  Checker := TStringList.Create; // string podzielony semantycznie
  HtmlText := TStringList.Create; // tekst sformatowany na html


  HtmlText.Add('<span>');
  RawText.LoadFromFile(Filename);

  for I := 0 to RawText.Count - 1 do
  begin

    Checker.Clear;
    Str := '';
    StrSlice(RawText[I], Checker);
      //分隔rawText[i],以tab,space为分割符,分割后连续的tab,space独成一行

    for J := 0 to Checker.Count - 1 do
    begin
      if (Checker[J] <> '') then
      begin
        TmpRes := Checker[J];
        if ((Checker[J][1] = Chr(SPACE)) or (Checker[J][1] = Chr(TAB))) then
        begin
          S := '';

          if (Length(Checker[J]) = 1) and (J <> 0) then
          // pojedyncza spacja nie rozpoczynajaca linii
          Str := Str + ' '
          else
          begin
          for K := 1 to Length(Checker[J]) do
          S := S + '&' + 'nbsp' + ';';
          Str := Str + S;
          end;
        end
        else
        begin
          Tmp := '';
          for L := 1 to Length(Checker[J]) do
          begin
          if Checker[J][L] = '<' then
          Tmp := Tmp + '&' + 'lt' + ';'
          else if Checker[J][L] = '>' then
          Tmp := Tmp + '&' + 'gt' + ';'
          else if Checker[J][L] = '&' then
          Tmp := Tmp + '&' + 'amp' + ';'
          else
          Tmp := Tmp + Checker[J][L];
          end;
          Str := Str + Tmp;
        end;

      end;//if
    end;//for checker

    Str := Str + '<br>';
    HtmlTExt.Add(Str);
  end;   //for rawtext
  HtmlText.Add('</span>');

  Result:=HtmlText.text;
  RawText.Free;
  Checker.Free;
  HtmlText.Free;
end;
Google
 
本站原创作品,未经作者许可,严禁任何方式转载;转载作品,如果侵犯了您的权益,请联系我们
龙脉加密锁 15元起 Grid++Report 报表 申请支付@网
 相关文章
没有相关文章
相关评论
共有评论0条
我要发表评论 查看全部评论
 
  DELPHI盒子版权所有 1999-2012 V3.01 沪ICP备05001939号 更新RSS列表