本人新手,求助各大高手,用一段VB6.0程序筛选文本文件里的数据保存到另一个文本文件中

文本文件格式如下:"波长(nm)","R%"300.00,6.239301.00,6.239302.00,6.234303.00,6.214304.00,6.221305... 文本文件格式如下:
"波长(nm)","R%"
300.00,6.239
301.00,6.239
302.00,6.234
303.00,6.214
304.00,6.221
305.00,6.180
306.00,6.151
307.00,6.134
308.00,6.126
309.00,6.102
310.00,6.099
311.00,6.095
312.00,6.104
313.00,6.113
314.00,6.114
315.00,6.115
316.00,6.123
317.00,6.102
318.00,6.089
319.00,6.079
320.00,6.069
321.00,6.049
322.00,6.032
323.00,6.006
324.00,5.997
325.00,5.990
326.00,5.988
327.00,5.980
328.00,5.978
329.00,5.978
330.00,5.969
331.00,5.960
332.00,5.957
333.00,5.963
334.00,5.960
335.00,5.949
336.00,5.950
337.00,5.947
338.00,5.928
339.00,5.914
340.00,5.912
341.00,5.889
342.00,5.888
343.00,5.890
344.00,5.879
345.00,5.872
…… ……
共有数据约2000个,波长差为1,挑选出波长为305、310、315、320、325、330、335、340、345、350、360、370、380、390、……、550(前后差为10)、570、590……、710(前后差20)、718、725……(无规律)的数据,共约105个.谢谢!!
希望能给出程序代码,比较急,谢谢
展开
 我来答
若以下回答无法解决问题,邀请你更新回答
thruwindow
2011-03-22 · 超过24用户采纳过TA的回答
知道答主
回答量:55
采纳率:100%
帮助的人:66.3万
展开全部
我提供个思路:
1、首先,定义两个数组(若数据总数确定,定义为定长数组;否则,使用程序获得文件的总行数,定义数组的长度为总行数减一),分别存放波长和R值;
2、打开文件,自第二行起将数据读入到这两个数组中。
3、因波长数组是等差数列,使用循环语句将305至350之间的数据取出来(数组下标相隔5)、将360至550之间的数据取出来(数组下标相隔10)、将570至710之间的数据取出来(数组下标相隔20),以及剩下的其它数据取出来,取出来的数据存放到另一文本文件中。取数据的过程,主要针对数组下标来操作。
追问
能否提供一段代码,将305-350的挑选出来就行
追答
好的,等一下。
下面是最简陋的一段代码,强行定义数组总长度,窗口中只有一个文本框Text1、一个按钮Command1和一个列表框List1。
Option Explicit

Dim WaveLength(0 to 1999) As Single, RValue(0 to 1999) As Single

Private Sub Command1_Click()
Dim FileName As String, FileNo As Integer, I As Integer, TempLine As String
Dim StartSub As Integer, EndSub As Integer

FileName = Text1.Text‘获得文件完整名称
FileNo = FreeFile
Open FileName For Input As #FileNo'打开文件,准备读取数据
I = -1
Do While Not EOF(FileNo)
I = I + 1
If I = 0 Then
LIne Input #FileNo, TempLine'首行不计入数组中,直接读入到一个临时变量
Else
Input #FileNo, WaveLength(I), RValue(I)'数组的数据从第二起读入
End If
Loop
Close #FileNo

StartSub = 305 - 300 + 1'起始下标(注:第一个波长值为300)
EndSub = 350 - 300 + 1'终止下标(注:第一个波长值为300)
List1.Clear
For I = StartSub To EndSub Step 5'每隔5个点取一次数据
List1.AddItem CStr(WaveLength(I)) & vbTab & CStr(RValue(I))
Next I
MsgBox "OK"
End Sub
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式