p> 计算机世界的web站点,越来越受到广大读者和网 友的喜爱,其中有一个重要原因,就是实用技巧栏目的推出。在实用技巧网页中,编辑对文 本文件进行了处理,在每个汉字中间增加一个空格,以便于网友在网上阅读,在因特网上也 有不少网站采取了此类便民措施。
我们从网上粘下这类文本文件之后,有时候需要 打印留存,但在打印时却遇到了麻烦,那就是汉字中的空格成为多余。以下delphi程序利用memo 控件作为过渡,可删除文件中的多余空格,重新存盘后,即可方便的用word或wps打印输出。
1、新建一个工程,在窗体上放置如下控件:memo1、opendialog1 和3个按钮(“打开”、“存盘”、“删除多余空格”),设置memo1的属性wordwrap=false,设置“存 盘”和“删除多余空格”的属性enabled=false。
2、编写三个按钮的事件代码。
proceduretform1.toolbutton1click(sender:tobject);begin//打开一个文本文件ifopendialog1.executethenbeginmemo1.lines.loadfromfile(opendialog1.filename);caption:=deleteblank[+opendialog1.filename+];ifmemo1.lines.count<>0thenbegintoolbutton2.enabled:=true;toolbutton3.enabled:=true;endelsebegintoolbutton2.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-1dobeginbuffer1:=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<=strlendobeginbuffer2:=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来实现可能会简单些。另 外,我们只在汉字前加一个空格,后面没有。]
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器