++++高分!绝对挑战++++从一个1M多的文件中查找字符串,并进行统计,如何做? ( 积分: 50 )

  • 主题发起人 主题发起人 anwin
  • 开始时间 开始时间
A

anwin

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大侠,大家好!
小弟最近接手了公司的一项统计工作,由于数据量较大,用手工统计很不现实,并且没有提供相关软件,因此小弟决定自行开发,主要是与字符打交道。文件如下(小弟在电信行业,涉及到保密,用户号码部分用*代替,请谅解哦~~ :) )

数据片断:
//文件开始

序号 开始时间 结束时间 事件类型 事件结果 用户号码 IMSI号码 DPC OPC CIC 附加
193 2005/03/01-07:57:45.237 2005/03/01-07:57:46.671 ISUP:呼叫事件 连接计费指示 主叫:29*****;被叫:17990; 2B-1D-96 32-C4-0F 00-08 通话时长:1122

311 2005/03/01-08:21:22.066 2005/03/01-08:21:23.030 ISUP:呼叫事件 正常的呼叫拆线(Normal call clearing)(前向,未收到ACM) 主叫:2*****2;被叫:179910536; 2B-1D-96 32-C4-0F 02-08

313 2005/03/01-08:21:25.083 2005/03/01-08:22:18.005 ISUP:呼叫事件 应答计费指示 主叫:29*****;被叫:179910*****03116; 2B-1D-96 32-C4-0F 02-0A 通话时长:567

346 2005/03/01-08:24:54.656 2005/03/01-08:25:34.021 ISUP:呼叫事件 应答计费指示 主叫:39*****;被叫:179910539*****68; 2B-1D-96 32-C4-0F 03-1A 通话时长:24701

473 2005/03/01-08:41:38.397 2005/03/01-08:42:02.887 ISUP:呼叫事件 应答计费指示 主叫:22*****;被叫:17991053*****717; 2B-1D-96 32-C4-0F 02-12 通话时长:15274

476 2005/03/01-08:42:06.008 2005/03/01-08:43:16.871 ISUP:呼叫事件 应答计费指示 主叫:2*****2;被叫:17991053*****543; 2B-1D-96 32-C4-0F 02-1E 通话时长:55508

493 2005/03/01-08:43:38.650 2005/03/01-08:43:39.354 ISUP:呼叫事件 正常的呼叫拆线(Normal call clearing)(前向,未收到ACM) 主叫:22*****;被叫:179910; 2B-1D-96 32-C4-0F 03-1C

578 2005/03/01-08:54:18.869 2005/03/01-08:55:03.494 ISUP:呼叫事件 应答计费指示 主叫:2*****2;被叫:1799105*****5097; 2B-1D-96 32-C4-0F 01-1E 通话时长:31221

621 2005/03/01-08:59:05.136 2005/03/01-08:59:49.055 ISUP:呼叫事件 正常的呼叫拆线(Normal call clearing)(前向,收到ACM) 主叫:3*****8;被叫:17991053*****489; 2B-1D-96 32-C4-0F 01-16
。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。

//文件结束,此处只是截取了部分数据,全部数据约有10万条左右,不过可以将文件分割开,如100K一个文件。
我的想法是用程序查找 主叫和被叫,如数据“主叫:2*****2;被叫:1799105*****5097”,然后将主叫号码2*****2 和被叫号码1799105*****5097提取,然后写入到另外一个数据库中,如ACCESS数据库。
查询字符串“主叫:” 所在位置后面的7个字符即为电话号码,如:2****72 后面;被叫:179910
如果单纯是字符串,用函数instr()也就可以了,可现在是从文件中查找并取出号码保存到另外一个数据库中,小弟水平很菜,还请各位大侠指导!谢谢了~ :)
 
各位大侠,大家好!
小弟最近接手了公司的一项统计工作,由于数据量较大,用手工统计很不现实,并且没有提供相关软件,因此小弟决定自行开发,主要是与字符打交道。文件如下(小弟在电信行业,涉及到保密,用户号码部分用*代替,请谅解哦~~ :) )

数据片断:
//文件开始

序号 开始时间 结束时间 事件类型 事件结果 用户号码 IMSI号码 DPC OPC CIC 附加
193 2005/03/01-07:57:45.237 2005/03/01-07:57:46.671 ISUP:呼叫事件 连接计费指示 主叫:29*****;被叫:17990; 2B-1D-96 32-C4-0F 00-08 通话时长:1122

311 2005/03/01-08:21:22.066 2005/03/01-08:21:23.030 ISUP:呼叫事件 正常的呼叫拆线(Normal call clearing)(前向,未收到ACM) 主叫:2*****2;被叫:179910536; 2B-1D-96 32-C4-0F 02-08

313 2005/03/01-08:21:25.083 2005/03/01-08:22:18.005 ISUP:呼叫事件 应答计费指示 主叫:29*****;被叫:179910*****03116; 2B-1D-96 32-C4-0F 02-0A 通话时长:567

346 2005/03/01-08:24:54.656 2005/03/01-08:25:34.021 ISUP:呼叫事件 应答计费指示 主叫:39*****;被叫:179910539*****68; 2B-1D-96 32-C4-0F 03-1A 通话时长:24701

473 2005/03/01-08:41:38.397 2005/03/01-08:42:02.887 ISUP:呼叫事件 应答计费指示 主叫:22*****;被叫:17991053*****717; 2B-1D-96 32-C4-0F 02-12 通话时长:15274

476 2005/03/01-08:42:06.008 2005/03/01-08:43:16.871 ISUP:呼叫事件 应答计费指示 主叫:2*****2;被叫:17991053*****543; 2B-1D-96 32-C4-0F 02-1E 通话时长:55508

493 2005/03/01-08:43:38.650 2005/03/01-08:43:39.354 ISUP:呼叫事件 正常的呼叫拆线(Normal call clearing)(前向,未收到ACM) 主叫:22*****;被叫:179910; 2B-1D-96 32-C4-0F 03-1C

578 2005/03/01-08:54:18.869 2005/03/01-08:55:03.494 ISUP:呼叫事件 应答计费指示 主叫:2*****2;被叫:1799105*****5097; 2B-1D-96 32-C4-0F 01-1E 通话时长:31221

621 2005/03/01-08:59:05.136 2005/03/01-08:59:49.055 ISUP:呼叫事件 正常的呼叫拆线(Normal call clearing)(前向,收到ACM) 主叫:3*****8;被叫:17991053*****489; 2B-1D-96 32-C4-0F 01-16
。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。

//文件结束,此处只是截取了部分数据,全部数据约有10万条左右,不过可以将文件分割开,如100K一个文件。
我的想法是用程序查找 主叫和被叫,如数据“主叫:2*****2;被叫:1799105*****5097”,然后将主叫号码2*****2 和被叫号码1799105*****5097提取,然后写入到另外一个数据库中,如ACCESS数据库。
查询字符串“主叫:” 所在位置后面的7个字符即为电话号码,如:2****72 后面;被叫:179910
如果单纯是字符串,用函数instr()也就可以了,可现在是从文件中查找并取出号码保存到另外一个数据库中,小弟水平很菜,还请各位大侠指导!谢谢了~ :)
 
后退
顶部