下午,从网上找到一个“读取文本文件指定内容”程序,
procedure TForm1.Button2Click(Sender: TObject);
var vList:TStringList;
i:Integer;
S:string;
begin
vList:=TStringList.Create;
try
vList.LoadFromFile('D:\test.txt');
for i:=0 to vList.Count-1 do
begin
S:=vList.Strings[i];
if AnsiContainsText(S,'XX-ClientIp') then
begin
ShowMessage(Copy(S,Pos(':',S)+1,Length(S)));
Break;
end;
end;
finally
vList.Free;
end;
end;
test.txt的内容如下:
XX-User: [email protected]
XX-MsgType: MAIL_READ_MAIL
XX-ClientMac: E0C0A0070300
XX-ServerMac: 981000000111
XX-ClientPort: 64315
XX-ServerPort: 80
XX-ClientIp: 123.243.151.171
XX-ServerIp: 202.108.5.18
XX-Protocol: HTTPMAIL
执行完上面程序后,将取出“123.243.151.171”,并在对话框上显示。
假设test.txt内容变成:
XX-User: [email protected]
XX-MsgType: MAIL_READ_MAIL
XX-ClientMac: E0C0A0070300
XX-ServerMac: 981000000111
XX-ClientPort: 64315
XX-ServerPort: 80
XX-ClientIp: 123.243.151.171 Phone:075512345678 Date:2009.08.24
XX-ServerIp: 202.108.5.18
XX-Protocol: HTTPMAIL
请问,如果要取出XX-ClientIp、Phong和Date的内容,即:
123.243.151.171
075512345678
2009.08.24
该如何修改上面程序?
procedure TForm1.Button2Click(Sender: TObject);
var vList:TStringList;
i:Integer;
S:string;
begin
vList:=TStringList.Create;
try
vList.LoadFromFile('D:\test.txt');
for i:=0 to vList.Count-1 do
begin
S:=vList.Strings[i];
if AnsiContainsText(S,'XX-ClientIp') then
begin
ShowMessage(Copy(S,Pos(':',S)+1,Length(S)));
Break;
end;
end;
finally
vList.Free;
end;
end;
test.txt的内容如下:
XX-User: [email protected]
XX-MsgType: MAIL_READ_MAIL
XX-ClientMac: E0C0A0070300
XX-ServerMac: 981000000111
XX-ClientPort: 64315
XX-ServerPort: 80
XX-ClientIp: 123.243.151.171
XX-ServerIp: 202.108.5.18
XX-Protocol: HTTPMAIL
执行完上面程序后,将取出“123.243.151.171”,并在对话框上显示。
假设test.txt内容变成:
XX-User: [email protected]
XX-MsgType: MAIL_READ_MAIL
XX-ClientMac: E0C0A0070300
XX-ServerMac: 981000000111
XX-ClientPort: 64315
XX-ServerPort: 80
XX-ClientIp: 123.243.151.171 Phone:075512345678 Date:2009.08.24
XX-ServerIp: 202.108.5.18
XX-Protocol: HTTPMAIL
请问,如果要取出XX-ClientIp、Phong和Date的内容,即:
123.243.151.171
075512345678
2009.08.24
该如何修改上面程序?
解决方案 »
- SQL多表查询的结果大家如何存储和处理??
- 有没有这样的控件?
- 又一个插入数据判断重复的问题,该如何做?头都大了!
- 请教delphi高手:传入参数问题
- 很简单的问题!
- 大家好,现在我用Fastreport做报表,没用多久,一个简单的问题
- 请教几个概念,并欢迎讨论。
- 如何将Delphi做的程序放到控制面板中,就象BDE Administrator一样?
- 各位DELPHI前辈,由于特殊原因我想用STRINGGRID进行编辑操作,我该怎么做?谢谢帮忙!
- 线程执行?
- delphi 中TsmartQuery后有几个属性:sqlrefresh,sqllock代表什么,怎样使用呢 ?
- 我现在想获取宽带连接列表
sClientIp = vList.values[ 'XX-ClientIp' ];
新人要勤快一点
如果采用上面的方式,多加几个if就可以把所有的值都读出来
var vList,vListT:TStringList;
i,j:Integer;
begin
vList:=TStringList.Create;
vListT:= TStringList.Create;
try
vList.LoadFromFile('D:\test.txt');
for i:=0 to vList.Count-1 do
begin
vListT.Delimiter := ':';
vListT.DelimitedText := vList[i];
for j:= 0 to vListT.Count-1 do
begin
if vListT[0] = 'XX-ClientIp' then
mmo1.Lines.Add(vListT[j]);
end;
end;
finally
vList.Free;
vListT.Free;
end;
end;