文本文件处理(50分)

  • 主题发起人 主题发起人 wzpok
  • 开始时间 开始时间
W

wzpok

Unregistered / Unconfirmed
GUEST, unregistred user!
有一个文本文件其中的数据是这样的
35
34
67
234
57
7
456
79
现在要把回车符换为空格使内容变为
35 34 67 234 57 7 456 79
应该怎么做?
 
用一动态数组全部读入,再依次写入,不要用#13
 
用readln读入,再用write写出,中间加一空格就可以了。
 
試一下:
procedure TForm1.Button1Click(Sender: TObject);
var text1:textfile;
str,str1:string;
begin
assignfile(text1,'e:/read.txt');//'e:/read.txt'用你要打開的文本文件名替換。
reset(text1);
str:='';
while not eof(text1) do
begin
readln(text1,str1);
str:=str+' '+str1;
end;
closefile(text1);
showmessage(str);//str值即為你要的結果
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
t: TStringList;
s:string;
i:Integer;
begin
if OpenDialog1.Execute then
begin
t := TStringList.Create;
t.LoadFromFile(pchar(OpenDialog1.FileName));
s:=t.Strings[0];
for i :=1 to (t.Count-1) do
begin
s:=s+' '+t.Strings;
end;

ShowMessage(s);
t.free;
end;

end;
 
太简单。。。
 
???????????
 
var
SrcFile: TStringList;
Dst: string;
p: Integer;
begin
SrcFile := TStringList.Create;
//载入文件:
SrcFile.LoadFromFile('c:/abc.txt');
Dst := SrcFile.Text;
//替换全部:
p := Pos(#13#10, Dst);
while p > 0 do
begin
Delete(Dst, p, 2);
Insert(' ', Dst, p);
p := Pos(#13#10, Dst);
end;
ShowMessage(Dst);
SrcFile.Free;
end;

问题的关键在于把 回车换行 根 空格 看成同等地位,大家都是字符串,于是直接替换即可
 
谢谢大家帮助
 
应该用fpsky和远帆的方法。
 
可以以二进制形式读出,把0x0a和0x0d换成0x20就好了。
 
daileking, 能否给个例子啊,谢谢你啊

 
后退
顶部