如何读写文本文件(50分)

  • 主题发起人 主题发起人 caoliu
  • 开始时间 开始时间
C

caoliu

Unregistered / Unconfirmed
GUEST, unregistred user!
例如将:
textfile
A BD C
1 2 3
变成以下字符写入新的文本文件
A C
1 3
 
procedute ConvertTo(inFile,outFile:String);
var fi,fo:TextFile;
li,lo:String;
i,ln,flag:integer;
begin
AssignFile(fi,inFile);
reset(fi);
AssignFile(fo,outFile);
reWrite(fo);
while not Eof(fi) do
begin
Readln(fi,li);
li->lo;将输入转到输出,看不出你的格式没法写代码。
WriteLn(fo,lo);
end;
closefile(fi);
closefile(fo)


end;
 
问题都没说清楚,怎么回答啊!
 
textfile 是第一行,A BD C是第2行,1 2 3是第3行;
A和1是第一列 ,B和2是第4列,D是第5列,C和3是第7列.
新的文本A和1是第一列 ,C和3是第4列;去掉B和2 and D.
 
试试这个
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
procedure Gettxt(s:string;var s1,s2,s3:string);
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
txt,txt2:Textfile;
s,s1,s2,s3:string;
begin
assignfile(txt,'d:/1.txt');
assignfile(txt2,'d:/2.txt');
reset(txt);
if FileExists('d:/2.txt') then
append(txt2)
else
rewrite(txt2);
while not eof(txt) do
begin
readln(txt,s);
gettxt(s,s1,s2,s3);
s2:=' ';
writeln(txt2,s1,s2,s3);
end;
closefile(txt);
closefile(txt2);
end;

procedure TForm1.Gettxt(s: string
var s1, s2, s3: string);
var
iLen,iTmp:integer;
begin
s:=trim(s);
iLen := length(s);
iTmp:= pos(' ',s);

s1:=copy(s,1,iTmp);
s:=copy(s,itmp,ilen);

s:=trim(s);
iLen := length(s);
iTmp:= pos(' ',s);

s2:=copy(s,1,iTmp);
s:=copy(s,itmp,ilen);
s3:=trim(s);
end;

end.
 
行是行,但是第一行"textfile"没去掉.
 
您自己想办法吧?我想newly 兄不会在答了吧,不难啊。你跳过第一行就可以了。
 
接受答案了.
 
textfile我还以为是专门指明文本文件呢
 
后退
顶部