好库网 好库网首页 | 我的好库
Delphi盒子

删除文本文件中的多余空格-Delphi资料

发布者:delphibox
发布日期:2011/4/8 22:33:50   更新日期:2011/4/8 22:33:50
阅读次数:3268
评分:4.80
介绍: 删除文本文件中的多余空格-Delphi资料
正文:

计算机世界的Web站点,越来越受到广大读者和网友的喜爱,其中有一个重要原因,就是实用技巧栏目的推出。在实用技巧网页中,编辑对文本文件进行了处理,在每个汉字中间增加一个空格,以便于网友在网上阅读,在因特网上也有不少网站采取了此类便民措施。

我们从网上粘下这类文本文件之后,有时候需要打印留存,但在打印时却遇到了麻烦,那就是汉字中的空格成为多余。以下Delphi程序利用Memo 控件作为过渡,可删除文件中的多余空格,重新存盘后,即可方便的用Word或Wps打印输出。

1、新建一个工程,在窗体上放置如下控件:Memo1、OpenDialog1 和3个按钮(“打开”、“存盘”、“删除多余空格”),设置Memo1的属性WordWrap=False,设置“存 盘”和“删除多余空格”的属性Enabled=False。

2、编写三个按钮的事件代码。

procedureTForm1.ToolButton1Click(Sender:TObject);

begin//打开一个文本文件

ifopendialog1.Executethenbegin

memo1.Lines.LoadFromFile(opendialog1.FileName);

caption:='DeleteBlank['+opendialog1.FileName+']';

ifmemo1.Lines.Count<>0thenbegin

toolbutton2.Enabled:=True;

toolbutton3.Enabled:=True;

end

elsebegin

toolbutton2.Enabled:=False;

toolbutton3.Enabled:=False;

end;

end;

end;

procedureTForm1.ToolButton2Click(Sender:TObject);

begin//将Memo1的内容写入原来文件

screen.Cursor:=crHourGlass;

memo1.Lines.SaveToFile(opendialog1.FileName);

toolbutton2.Enabled:=False;

screen.Cursor:=crDefault;

end;

procedureTForm1.ToolButton3Click(Sender:TObject);

vari

j

linecount

strlen:integer;

buffer1

buffer2:string;

begin//删除Memo1中的多余空格

screen.Cursor:=crHourGlass;

linecount:=memo1.Lines.Count;

//总行数

fori:=0tolinecount-1dobegin

buffer1:=memo1.Lines[i];

iflength(trim(buffer1))=0thencontinue;

//处理空白行

buffer2:='';

strlen:=length(buffer1);

//行长

j:=1;

while(j<=strlen)and(buffer1[j]='')dobegin

//跳过行首空格

j:=j+1;

buffer2:=buffer2+'';

end;

whilej<=strlendobegin

buffer2:=buffer2+buffer1[j];

ifj=strlenthenbreak;

//行尾则退出循环

j:=j+1;

ifbuffer1[j]<>''thencontinue;

//不为空格,则处理下一个字符

iford(buffer1[j+1])>=$A1thenbegin

//后一个为汉字,则删除这个空格

j:=j+1;

continue;

end;

end;

memo1.Lines[i]:=buffer2;

end;

toolbutton3.Enabled:=False;

screen.Cursor:=crDefault;

end;

3、本程序在PWin95/98

Delphi3下调试通过,由于篇幅所限,Memo1中的显示不能自动换行,读者可自行完善。


评论 [发表评论]
账号 密码 还没帐号呢,现在注册一个?

免责声明:好库网所展示的信息由买卖双方自行提供,其真实性、准确性和合法性由信息发布人负责。好库网不提供任何保证,并不承担任何法律责任。