高手帮忙,有分。谢谢了(50分)

  • 主题发起人 主题发起人 ntire
  • 开始时间 开始时间
N

ntire

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在有一个文本文件里面放的都是
219.113.48.211:25847@SOCKS5
222.103.177.149:8080@HTTP
218.194.80.230:1080@SOCKS5。现在想做个程序,把这些信息,分别提取出来(IP,PORT,TYPE)然后写到ACCESS数据库里,请给出DEMO,谢谢了
 
这么简单的分析还要别人来写
是不是有点过分了啊
 
使用TStringList
 
对你简单对我难不行吗,我没理由叫你写,你也没理由一定要写,请管好自己的嘴。
我就不信你生下来就会写。
 
我告诉你一个简单的方法
在界面上面拖一个MEMO1

var
i:integer;
ipaddress,port,types:string;
fileName:string;
begin
memo1.Lines.LoadFromFile(filename);
for i:=0 to memo1.lines.count do
begin
ipaddress:= copy(memo1.Lines,1,pos(':',memo1.Lines));
port := copy(memo1.Lines,pos(':',memo1.Lines)+1,pos('@',memo1.lines)-pos(':',memo1.Lines));
types := copy(memo1.Lines,pos('@',memo1.Lines)+1,10);
//写入数据库
writeToAccess(ipaddress,port,types)
end
end;
 
接着楼上的说
楼主只要理解copy函数和pos函数的使用方法就OK了
比如:
copy(m,11,5)
m :就是copy源,就是一个字符串,表示你将要从m里copy一些东西
11 : 从m中的第11位开始copy(包含第11位)
5 : copy从第11位开始后的5个字符
例如:
m:='the fellowship of the ring';
s:=copy(m, 2, 2);
//s就等于'he'

pos函数的功能是取出子串在父串中第一次出现的位置
例如
pos('b','abcd');
返回结果是2

把COPY和POS函数结合用,就能实现你的要求
 
处理流程
1.打开文本文件
2.读取一行
3.使用delphi自带的extractstrings提取字符串,其中分隔符就是“:”和“@”符号,并把分割的结果保存在一个临时的Tstrings变量中。
4.然后写数据库。
如果你的文本文件很大,可能会影响到读取的处理速度,那么建议使用内存映射的方式来处理。
 
study hard,and make progress every day,isn't it?
 
谢谢各位。谢谢!
 
试写一下,很简单的.-----实在不行,给RMB我给你写
 

Similar threads

回复
0
查看
1K
不得闲
D
回复
0
查看
875
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部