处理文本文件遇到的有关问题
处理文本文件遇到的问题
我要在文本文件找一个字符窜,用readln(f,s)读取后进行比较,是否为所需要的。若为需要,则要向上退两行,取另外一个字符窜。请问如何回退指针。
例子:
12/29/06 00:00:05 #532692
* 00 REPT:CELL 138 ASSEMBLAGE 1 ALARM SCANNING
SCAN POINT: ALARM GROUP 2, ALARM ID 16
ALARM: CELL DOOR OPEN ALARM !
STATE: OFF NORMAL
当找到“CELL DOOR OPEN ALARM“后,如何在回退指针取时间“ 2/29/06 00:00:05“。谢谢
------解决方案--------------------
可以借助于一个TStringList,很方便 如:
const
Tg = 'gggg '; //标志串
Bk = 2 ; //回退行数
var
SL : TStringList;
I : integer;
BkS: string;
begin
SL := TStringList.Create;
SL.LoadFromFile( 'c:\tttt.txt ');
for I := 0 to SL.Count-1 do
begin
if Pos(Tg,SL[I])> 0 then
if I-Bk> =0 then
begin
BkS := SL(I-Bk);
{ Bks就是后退Bk行的内容,你可以在这里处理 }
ShowMessage(BkS);
end;
end;
SL.Free;
end;
我要在文本文件找一个字符窜,用readln(f,s)读取后进行比较,是否为所需要的。若为需要,则要向上退两行,取另外一个字符窜。请问如何回退指针。
例子:
12/29/06 00:00:05 #532692
* 00 REPT:CELL 138 ASSEMBLAGE 1 ALARM SCANNING
SCAN POINT: ALARM GROUP 2, ALARM ID 16
ALARM: CELL DOOR OPEN ALARM !
STATE: OFF NORMAL
当找到“CELL DOOR OPEN ALARM“后,如何在回退指针取时间“ 2/29/06 00:00:05“。谢谢
------解决方案--------------------
可以借助于一个TStringList,很方便 如:
const
Tg = 'gggg '; //标志串
Bk = 2 ; //回退行数
var
SL : TStringList;
I : integer;
BkS: string;
begin
SL := TStringList.Create;
SL.LoadFromFile( 'c:\tttt.txt ');
for I := 0 to SL.Count-1 do
begin
if Pos(Tg,SL[I])> 0 then
if I-Bk> =0 then
begin
BkS := SL(I-Bk);
{ Bks就是后退Bk行的内容,你可以在这里处理 }
ShowMessage(BkS);
end;
end;
SL.Free;
end;