删除文本文件中的多余空格

2008-04-09 04:17:37来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

p>  计算机世界的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.   es[i]:=buffer2;
end;
toolbutton3.Enabled:=False;
screen.Cursor:=crDefault;
end;

  3、本程序在PWin95/98,Delphi3下调试通过,由 于篇幅所限,Memo1中的显示不能自动换行,读者可自行完善。

  [阿昊说:这种技巧用C来实现可能会简单些。另 外,我们只在汉字前加一个空格,后面没有。]

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Delphi下编程实现中文输入

下一篇:实现应用程序的文件拖放功能

热门词条
热门标签