您的位置:首页 > 其它

fpc : 连续2个以上的空格替换成1个空格

2015-04-11 12:45 260 查看
我们先看看 python 的写法:

space1.py

# -*- coding: cp936 -*-
import os, sys
import re

if len(sys.argv) ==2:
f1 = sys.argv[1]
else:
print 'usage: space1.py file1.txt '
sys.exit(1)

if not os.path.exists(f1):
print 'ERROR: %s not found\n' % f1
sys.exit(1)

fp = open(f1,'rt')
f2 = f1 +'.bak'
fp2 = open(f2,'w')
aline =''
for line in fp:
aline = re.sub(r'[ ]{2,}',' ',line)
fp2.write(aline)
#
fp.close()
fp2.close()


我们看看free pascal 写法:

space1.pas

Program space1;
{$mode objfpc}{$H+}
uses sysutils;
Var
f1,f2:text;
str,str2:string;
ln:integer;
Begin
if ParamCount =1 then
begin
AssignFile(f1,ParamStr(1));
AssignFile(f2,ParamStr(1)+'.bak');
end
else begin
if ParamCount =2 then
begin
Assign(f1,ParamStr(1));
Assign(f2,ParamStr(2));
end
else begin
writeln(' usage: readfile file1.txt ');
writeln(' usage: readfile file1.txt file2.bak ');
exit;
end;
end;
ln:=0;
Reset(f1);
Rewrite(f2);
while not eof(f1) do
begin
ln:=ln+1;
readln(f1,str);
if length(str)>0 then
begin
while Pos('  ',str)>0 do
begin
str := StringReplace(str,'  ',' ',[rfReplaceAll]);
end;
str2 := str;
writeln(f2,str2);
end;
end;
CloseFile(f2);
CloseFile(f1);
writeln('line number: ',ln);
End.


编译 fpc space1.pas

运行 space1.exe tmp.txt
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐