我用Opendialog打开一个txt文件,读取里面的数据,然后做一些修改,最后写到另一个txt文件中(有固定的路径),可是等我处理完后,发现原来的那个txt文件也被改变了,怎么回事啊?Opendialog的path为全局变量.请高手指教,谢谢!
解决方案 »
- 在DBGridEh中使某列字段数值为0的行不显示出来
- 多表数据查询合并!
- 技术做不下去了,我想转行做销售去,欢迎各位给我建议!
- TWebBrowser中,如何访问页面中的array??
- 哪位给我一个能设置背景图的Memo或RichEdit控件吗?
- ADOTable1和ADOQuery1这两个控件的用法
- 请众位大侠,能不能强烈的推荐一本关于Delphi入门级的经典著作!谢谢了!推荐者必有分
- 新建DELPHI加油站QQ群 82426159 欢迎新老朋友加入,
- 特急!!!数组问题。
- 如何用DELPHI的API函数编写串口通讯软件(需多线程)?
- 请问如何动态取得DLL内的参数?
- 现场给分,为什么简单的代码却会出错///窗体调用。。
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, DBTables, Grids, DBGrids, ADODB, ComCtrls;type
TForm3 = class(TForm)
Button1: TButton;
Button2: TButton;
Edit1: TEdit;
Button3: TButton;
Button4: TButton;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
Table1: TTable;
ProgressBar1: TProgressBar;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations } end;var
Form3: TForm3;
path:String;//因为多个按钮都要用到path的值
implementationuses Unit4, import;{$R *.dfm}procedure TForm3.Button1Click(Sender: TObject);
var
Form1: TForm;
sl: TStringList;
infile:textfile;
j,i: integer;
s,d,ss,fname,instring: string;
begin
button3.click;
fname:='D:\editransform1\data.txt';
assignfile(infile,fname);
rewrite(infile); //利用rewrite清空原文本
// append(infile);
// instring:='';
// writeln(infile,instring);
closefile(infile);
sl := TStringList.Create;
sl.LoadFromFile(path);
progressbar1.Min:=0;
progressbar1.Max:=sl.Count;
progressbar1.Step:=1;
for i:=0 to sl.Count-1 do
begin
progressbar1.Position:=i;
s:=sl[i];
for j:=0 to Length(s) do
begin
if ((s[j]='?') and (s[j+1]='?')) then
begin
s[j]:=' ';
d:=copy(s,1,j);
ss:=copy(s,j+2,Length(s));
s:=d+ss;
end;
end;
fname:='D:\editransform1\data.txt';
assignfile(infile,fname);
//rewrite(infile);
append(infile);
instring:=s;
writeln(infile,instring);
closefile(infile);
end;
Form3.Hide;
Form1:=TForm1.create(Application);
Form1.ShowModal;
end;procedure TForm3.Button2Click(Sender: TObject);
begin
application.Terminate;
end;procedure TForm3.Button3Click(Sender: TObject); //去掉文件中的空行
var
s,d:Tstringlist;
i,j:integer;
ss,l:String;
begin
opendialog1.Execute;
path:=opendialog1.Files[0];
s:=Tstringlist.Create;
d:=Tstringlist.Create;
//s.LoadFromFile('D:\editransform1\data1.txt');
s.LoadFromFile(path);//读取原始报文
for i:=0 to s.Count-1 do
begin
ss:=s[i];
l:=copy(ss,1,2);
if ((length(s[i])<5) or (l='47')) then
else
d.Add(s[i]);
end;
//d.SaveToFile('D:\editransform1\data1.txt');
d.SaveToFile(path);
end;procedure TForm3.Button4Click(Sender: TObject);
var
s: string;
sl:Tstringlist;
i:integer;
begin
sl := TStringList.Create;
sl.LoadFromFile('D:\editransform1\data5.txt');
for i:=0 to sl.Count-1 do
begin
s:=sl[i];
Table1.Active:=True;
Table1.Append;
Table1.Fields[0].AsString:=s;
Table1.Post;
end;end;end.
自己跟踪一下,看看是不是这里将path文件给覆盖了
s.LoadFromFile(path);
....
d.SaveToFile(path);