我有一个非常奇怪的文本文件,其中包含一些我需要提取的数据。我真的不知道最好的方法,我需要指导如何做到最好的想法。文字如下:
基本上该文件包含该数据。我需要为每个“列”数据提取每个参数AA - FF。每个号码之间都有一些空格..
不知道如何开始这个并因此寻求帮助。 问候, DH
答案 0 :(得分:0)
我会阅读每一行并将它们分隔在空格上,扔掉空的东西。
这将为您留下一个字段列表。在此示例中,我以List(Of List(Of string))
的形式创建字段列表列表。这会为每一行创建一个字段列表,我认为这样可以很容易地迭代和存储它们。
Vb.net示例
Module Module1
Sub Main()
Dim fieldsOfEachLine As New List(Of List(Of String))
Dim reader As IO.StreamReader = New IO.StreamReader("F:\SlyWorkspace\StackOverflow\SpaceSeparatedText_47337929\sampledata.txt")
Dim currentLine As String
Do
currentLine = reader.ReadLine()
If currentLine IsNot Nothing Then
fieldsOfEachLine.Add(currentLine.Split(New Char() {" "c}, StringSplitOptions.RemoveEmptyEntries).ToList())
End If
Loop Until currentLine Is Nothing
reader.Close()
'once you have your fields neatly placed in a list, it's up
'to you to decide what you want to do with them
'for this sample, I will just spit them back out the screen using a \ to delimit the information I kept
For Each item As List(Of String) In fieldsOfEachLine
Console.WriteLine(String.Join("\", item))
Next
Console.ReadLine()
End Sub
End Module
这是一个快速的c#样本。
using System;
using System.Collections.Generic;
using System.Linq;
namespace CSharp_SpaceSeparatedText_47337929
{
class Program
{
static void Main(string[] args)
{
List<List<string>> fieldsForEachLine = new List<List<string>>();
string currentLine = string.Empty;
using (System.IO.StreamReader sr = new System.IO.StreamReader(@"F:\SlyWorkspace\StackOverflow\SpaceSeparatedText_47337929\sampledata.txt"))
{
while ((currentLine = sr.ReadLine()) != null)
{
fieldsForEachLine.Add(currentLine.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries).ToList());
}
}
foreach (List<string> item in fieldsForEachLine)
{
Console.WriteLine(string.Join("/", item));
}
Console.ReadLine();
}
}
}
我的数据文件包含此
1 2 3
bu AU BG
AA -- 929.2244 1074.4697 1114.7150
BB -- 1.458 1074.4697 1114.7150
CC -- 456.4584 448.4 584.5
DD -- 1234.458 789.456 4898.45
我的输出是
1\2\3
bu\AU\BG
AA\--\929.2244\1074.4697\1114.7150
BB\--\1.458\1074.4697\1114.7150
CC\--\456.4584\448.4\584.5
DD\--\1234.458\789.456\4898.45