| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1000 人关注过本帖
标题:大家近来看看该怎么做!!
取消只看楼主 加入收藏
samichang
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-8-22
收藏
 问题点数:0 回复次数:6 
大家近来看看该怎么做!!


读取c:\test.txt 数据并写入及生成 c:\out.txt文本

目的: 只提取RP和RPTWIN 有数据的行.提取数据为:RP值, RPTWIN值,及EM值,并当EM状态为AB,MB,CB时候提取!黑体部分为需要提取的数据!!!

c:\test.txt 内容如下:
<exemp:rp=all,em=all;

EM DATA

RP TYPE EM EQM TWIN CNTRL PP STATE
12 RP4L1A 0 CLT-0 13 PRIM CB
12 RP4L1A 1 CLT-1 13 PRIM CB
12 RP4L1A 2 CLT-2 13 SEC CB

13 RP4L1A 0 CLT-0 12 SEC CB
13 RP4L1A 1 CLT-1 12 SEC CB
13 RP4L1A 2 CLT-2 12 PRIM CB

32 RP4L1G 0 TSM-0 33 PRIM AB
32 RP4L1G 1 TSM-0 33 PRIM AB
32 RP4L1G 2 TSM-1 33 SEC MB
32 RP4L1G 3 TSM-1 33 SEC MB
32 RP4L1G 4 TSM-1 33 SEC WO
32 RP4L1G 10 TSM-5 33 SEC MB


33 RP4L1G 0 TSM-0 32 SEC AB
33 RP4L1G 1 TSM-0 32 SEC AB
33 RP4L1G 2 TSM-1 32 PRIM MB
33 RP4L1G 3 TSM-1 32 PRIM MB
33 RP4L1G 4 TSM-1 32 PRIM WO
33 RP4L1G 10 TSM-5 32 SEC MB


384 RP4S1A 8 ETMALT- 385 PRIM MB
384 RP4S1A 10 ASDS3-5120 385 PRIM MB

385 RP4S1A 8 ETMALT- 384 SEC MB
385 RP4S1A 10 ASDS3-5120 384 SEC MB

386 RPPS1 0 MIWUTS-320&&-335 PRIM CB

387 RPG2A 0 C7ST2C-320&&-323 PRIM MB
388 RPG3A 0 C7ST2C-324&&-327 PRIM CB

生成 c:\out.txt文本内容如下:

bleme:rp=12,rpt=13,em=0;
bleme:rp=12,rpt=13,em=1;
bleme:rp=12,rpt=13,em=2;
bleme:rp=32,rpt=33,em=0;
bleme:rp=32,rpt=33,em=1;
bleme:rp=32,rpt=33,em=2;
bleme:rp=32,rpt=33,em=3;
bleme:rp=32,rpt=33,em=10;

bleme:rp=384,rpt=385,em=8;
bleme:rp=384,rpt=385,em=10;

恳请高手帮忙解决啊!!!
谢谢!!!!!

搜索更多相关主题的帖子: 数据 
2006-08-22 14:52
samichang
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-8-22
收藏
得分:0 
哎~~偶是菜鸟啊~~能否写出来啊..怎么实现呀!~~
2006-08-22 17:07
samichang
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-8-22
收藏
得分:0 
谢谢楼上的兄台热心帮助啊!!!!
分析数组部分是最关键啦~~我就是会糊涂呀!~能否帮我再指导指导啊!!

谢谢!!
2006-08-23 08:08
samichang
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-8-22
收藏
得分:0 

谢谢!~兄台帮忙!~我还是很模糊~,因为还有重复的行,怎么不提取呢? 如:
32 RP4L1G 0 TSM-0 33 PRIM AB
33 RP4L1G 0 TSM-0 32 SEC AB !这行就是重复的!
能否举个例子啊!

如生成: bleme:rp=32,rpt=33,em=0;

太感谢谢啦~~

2006-08-23 12:19
samichang
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-8-22
收藏
得分:0 
以下是引用XOoo在2006-8-23 12:26:50的发言:
重复只是指数字重复?输出的文件不能有重复的行吗?

兄台:
提取数据是不能重复的,不然将产生这样的结果:

如: bleme:rp=32,rpt=33,em=0;
bleme:rp=33,rpt=32,em=0; 这个和上面的只是数据的位置交换了,但是一样的,属于重复啦~~如何屏蔽呢?.
能帮忙帮我做一下吗?
谢谢你!!!

[此贴子已经被作者于2006-8-23 13:56:50编辑过]

2006-08-23 13:39
samichang
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-8-22
收藏
得分:0 

我想到一个方法就是从每行中取三组连续字符分别放到rp,rpt, em ,三个自符变量中,如区10~13, 16~18,20~24,不知道该用什么语句做啊!~请高手指教!!

2006-08-25 08:21
samichang
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-8-22
收藏
得分:0 

Dim aaa(100, 6), ccc(100) As String
Private Sub Command1_Click()
k = 0
FILE_NAME = App.Path & "/test.txt"
Open FILE_NAME For Input As #1
Do While Not EOF(1)
Line Input #1, org_txt
If k >= 1 And Trim(org_txt) <> "" Then
BK = BK + 1
ccc(BK) = Trim(org_txt)
End If
If Left(Trim(org_txt), 2) = "RP" Then k = 1
Loop
Close #1

For i = 1 To BK
sss = ccc(i)
Do While InStr(sss, " ") <> 0
sss = Replace(sss, " ", " ")
Loop
ccc(i) = sss
Next i

For i = 1 To BK
ppp = Split(ccc(i), " ")
For j = 0 To UBound(ppp)
aaa(i, j) = ppp(j)
Next j
Next i

FILE_NAME = App.Path & "/out.txt"
Open FILE_NAME For Append As #1
For i = 1 To BK
If aaa(i, 6) = "AB" Or aaa(i, 6) = "MB" Or aaa(i, 6) = "CB" Then
Print #1, "bleme:rp=" & aaa(i, 0) & ",rpt=" & aaa(i, 4) & ",em=" & aaa(i, 2)
End If
Next i
Close #1

End Sub


RESULT: out.txt
bleme:rp=12,rpt=13,em=0
bleme:rp=12,rpt=13,em=1
bleme:rp=12,rpt=13,em=2
bleme:rp=13,rpt=12,em=0
bleme:rp=13,rpt=12,em=1
bleme:rp=13,rpt=12,em=2
bleme:rp=32,rpt=33,em=0
bleme:rp=32,rpt=33,em=1
bleme:rp=32,rpt=33,em=2
bleme:rp=32,rpt=33,em=3
bleme:rp=32,rpt=33,em=10
bleme:rp=33,rpt=32,em=0
bleme:rp=33,rpt=32,em=1
bleme:rp=33,rpt=32,em=2
bleme:rp=33,rpt=32,em=3
bleme:rp=33,rpt=32,em=10
bleme:rp=384,rpt=385,em=8
bleme:rp=384,rpt=385,em=10
bleme:rp=385,rpt=384,em=8
bleme:rp=385,rpt=384,em=10


!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
但有个问题:输出文件中相关的都有重复啊,怎么把重复的屏蔽掉,可以通过删除重复的或在重复的前面加“!” 也可以,因为最终我要把OUT.TXT 再传到机器里运行,而机器是基于C语言的所以在前面加“!”的行不执行!~ 请高手再赐教一下如何实现啊?
也就是最终输出结果为:
RESULT: out.txt
bleme:rp=12,rpt=13,em=0;
bleme:rp=12,rpt=13,em=1;
bleme:rp=12,rpt=13,em=2;
bleme:rp=32,rpt=33,em=0;
bleme:rp=32,rpt=33,em=1;
bleme:rp=32,rpt=33,em=2;
bleme:rp=32,rpt=33,em=3;
bleme:rp=32,rpt=33,em=10;
bleme:rp=384,rpt=385,em=8;
bleme:rp=384,rpt=385,em=10;

或:如下
RESULT: out.txt
bleme:rp=12,rpt=13,em=0;
bleme:rp=12,rpt=13,em=1;
bleme:rp=12,rpt=13,em=2;
!bleme:rp=13,rpt=12,em=0;
!bleme:rp=13,rpt=12,em=1;
!bleme:rp=13,rpt=12,em=2;
bleme:rp=32,rpt=33,em=0;
bleme:rp=32,rpt=33,em=1;
bleme:rp=32,rpt=33,em=2;
bleme:rp=32,rpt=33,em=3;
bleme:rp=32,rpt=33,em=10;
!bleme:rp=33,rpt=32,em=0;
!bleme:rp=33,rpt=32,em=1;
!bleme:rp=33,rpt=32,em=2;
!bleme:rp=33,rpt=32,em=3;
!bleme:rp=33,rpt=32,em=10;
bleme:rp=384,rpt=385,em=8;
bleme:rp=384,rpt=385,em=10;
!bleme:rp=385,rpt=384,em=8;
!bleme:rp=385,rpt=384,em=10;
有高手赐教一下啊!!

2006-08-26 08:49
快速回复:大家近来看看该怎么做!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017554 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved