要将TXT文本中的其中几列字符串提取出来,如何提取

其中我想提取PRN列中和STTIME列和REFGPS中的数据出来放入数组中,如何提取

排除非数据部分的行以后,读入一行数据,去掉首尾空格,将多个连续的空格替换为单一空格,然后以空格进行split拆分,取数组第0,3,9元素值写入对应数组.
也不说是什么语言,就只能给你提供个思路了.追问

我用的是vb,line input读出一行的数据以后,试着读取,但是还是不行,能帮我写一段代码吗,不甚感激,拆分不知道怎么拆分,每次都要去除掉首位空格吗,我是用len函数读取字符串长度,然后坐判断,到空格的时候读取数据,但是读取如第一行的第一个数据以后,后面的就坐不出来。

追答

读行的代码就不写了,写关键部分,假设行已经读到变量tstr中
tstr = trim(tstr) '去首尾空格
do '循环,用于替换掉所有连续空格
l = len(tstr)
tstr = split(tstr, " ", " ")
while llen(tstr)
tarr = split(tstr, " ")
msgbox tarr(0) & " / " & tarr(3) & " / " & tarr(9)

追问

谢谢啊,在试一下,不过我这个文本很长,我现在列出来的只是第18行的数据,我要将该行之前的数据全部不要,只是从PRN后面开始读,怎么办呢,Private Sub Command1_Click()
Open "D:\data\GZIM0656.215" For Input As #1
Do While Not EOF(1)
Line Input #1, mynum '将该行数据读入变量
Loop
Close #1 ' 关闭文件。在mynum中前面的若干行是不要的,我只是需要提取从行字符为PRN后面的这里的数据。谢了谢了啊

追答

简单,设个标志就可以了
c = False
Do While Not EOF(1)
Line input #1, mynum
If c Then
'这里的mynum就是数据行了
ElseIf InStr(mynum, "hhmmss")>0 Then '检查一下数据行前一行的特定标志,比如这里用"hhmmss"
c = True
End If
Loop

追问

不知道哪里不对,还是没有运行起

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-10-20
List list = new ArrayList();
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(new File("yourfilepath"))));
String temp = "";
String[] temparr ;
String[] desarr = null;
while((temp=br.readLine())!=null){
temp = temp.trim();
temparr = temp.split("\\s+");
desarr[0] = temparr[0];
//...
list.add(desarr);
}
第2个回答  2012-10-21
#!perl -w
use strict;
#AUTHOR:niejieqiang

my @u;
while (<DATA>) {
@u =(split/\s+/)[0,3,9];
print @u;
}
相似回答