新人有问题请教:怎样删除txt文件中不需要的行!
http://www.delphi2007.net/DelphiVCL/html/delphi_20061223140901166.html
如:我有3个txt的文件.分别为:1.txt;2.txt和3.txt.
<<1.txt>>
%yyy //第一行
*xxx
..
(kkkk //第十五行
f: 50.00 70.00 90.00
k: 80.00 90.00 70.00
<<2.txt>>
%yyy //第一行
*xxx
..
(kkkk //第十五行
y: 100.00 500.00 10.00
<<3.txt>>
%yyy //第一行
*xxx
..
(kkkk //第十五行
g:100.00 500.00 80.00
k:10.00 20.00 30.00
问题是:若我要求删除1-3.txt文件中的1--15行.只要求剩余的行数就可以了
还有如果要把1-3.txt已经删除了1-15行的文件在合并成为一个文件为yyy.txt并
保存在c盘下为 c:\yyy.txt.
最后的情况就像:
<<yyy.txt>>
f: 50.00 70.00 90.00 //第一行
k: 80.00 90.00 70.00 //第二行
y: 100.00 500.00 10.00
g:100.00 500.00 80.00
k:10.00 20.00 30.00 //第n行
若我的txt文件不只有3个.而是20个txt文件,又该怎么办呢?
且每个.txt文件必须删除1-15行后在合并为一个文件.
望大哥能给想点办法!
为谢!
操作文本文件的思路就是全部取到内存中,作为string或者stringlist来操作,合并完了再存回去。
TStringList的Delete方法
用delete方法就行
可以详细点说下吗?因为我是外行人.根本就不懂这些!
补充.每个txt文件1-15行不要后只有5行了!
可以帮忙写个教程什么的!
拜托!
期望能写个.exe文件就^_^了!
procedure TForm1.Button1Click(Sender: TObject);
var
vStringList: TStringList;
vStringListYYY: TStringList;
I, J: Integer;
begin
vStringList := TStringList.Create;
vStringListYYY := TStringList.Create;
try
for I := 1 to 3 do
begin
vStringList.LoadFromFile(Format('c:\%d.txt', [I]));
for J := 1 to 15 do
begin
if vStringList.Count <= 0 then Break;
vStringListYYY.Add(vStringList[0]);
vStringList.Delete(0);
end;
//vStringList.SaveToFile(Format('c:\%d.txt', [I]));// 先看看是不是想要的结果,别错了也覆盖掉
vStringList.SaveToFile(Format('c:\%d_test.txt', [I])); // 测试用
end;
vStringListYYY.SaveToFile('c:\yyy.txt');
finally
vStringList.Free;
vStringListYYY.Free;
end;
end;
如果文本文件只要20行,倒是可以用更简洁一点的办法。
思路:
读取文本文件第5行之后的所有字符;
字符串连接;
写到新文件中。
使用TStringList对象,感觉中间多了一层