我有一个导入文本文件的程序,该文件包含许多内容:
###
Starttime: 06.03.2008
Data: SOME RECORDS HERE
###
Starttime: 21.03.2008
Data SOME RECORDS HERE
... 等等
我不希望在“数据:”之后有一个结束时间,这是下一个开始时间-1所以我有
###
Starttime: 06.03.2008
Data: SOME RECORDS HERE
EndTime: 20.03.2008
###
Starttime: 21.03.2008
Data SOME RECORDS HERE
EndTime: (next starttime -1)
... 等等
答案 0 :(得分:3)
好吧,您必须逐行复制文件,并在适当的时候插入新行。你不能在文本文件中移动东西。
答案 1 :(得分:3)
最简单的方法是将文件读入TStringList
并在那里工作。
<强>伪代码:强>
var
S: TStringList;
i: Integer;
LastDate: TDateTime;
CurDate: TDateTime;
begin
S := TStringList.Create;
S.LoadFromFile('c:\...');
i := 0;
while i < S.Count do
begin
if S[i] = "###" then
begin
CurDate := StrToDate(S[i+1])
S.Insert(i-3, DateToStr(CurDate));
LastDate := CurDate;
i := i+2;
end else
begin
i := i+1;
end;
end;
S.SaveToFile('c:\...');
end;
此代码不是很强大,它不会检查任何特殊情况,例如第一个开始日期,但它应该足以让您入门。