如何将空格分隔更改为制表符分隔。
因为[LD端口02 CSTID f7sc67:Sorts complete.]有很大的空间间隔。
所以我不能一分为二!
List<string> add_list = new List<string>();
List<string> ok_list = new List<string>();
IEnumerable<String> lines = File.ReadLines("C:\\Users\\USER\\Downloads\\1231231231.log");
foreach (string line in lines)
{
add_list.Add(line);
}
foreach (string row in add_list)
{
var data = row.Split(' ');
Console.WriteLine(data);
}
数据:
00002 00:00:50 Normal LD Port 02 CSTID F7SC67 : Sorts Complete.
00003 00:00:57 Error CompletedCST [0] .
00004 00:00:59 Normal LD Port 02 CSTID F7SC67: Log Off OK
00005 00:01:08 Normal LD Port 08 CSTID F7S248 : Sorts Complete.
我想要的是:
2,00:00:50,Normal,LD Port 02 CSTID F7SC67 : Sorts Complete.
3,00:00:57,Error,CompletedCST [0] .
4,00:00:59,Normal,LD Port 02 CSTID F7SC67: Log Off OK
5,00:01:08,Normal,LD Port 08 CSTID F7S248 : Sorts Complete.
Edit(by@chase):OP不想只按空格拆分--这就是为什么他们的代码是错误的。 它们的最终结果应该是What I want:
中提到的结果--其中每一项都用逗号分隔,并且每一项都是明显不同的。 data:
中提到了实现此结果的输入
请尝试以下操作:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace ConsoleApplication4
{
class Program
{
const string FILENAME = @"c:\temp\test.txt";
static void Main(string[] args)
{
List<List<string>> data = GetFixedWidth(FILENAME);
}
static List<List<string>> GetFixedWidth(string filename)
{
int[] startPosition = { 0, 6, 15, 24 };
StreamReader reader = new StreamReader(filename);
string line = "";
int length = 0;
List<List<string>> data = new List<List<string>>();
while ((line = reader.ReadLine()) != null)
{
line = line.Trim();
if(line.Length > 0)
{
List<string> rowList = new List<string>();
data.Add(rowList);
for (int i = 0; i < startPosition.Length; i++)
{
if (line.Length > startPosition[i])
{
if (i == startPosition.Length - 1)
{
string[] splitData = line.Substring(startPosition[i]).Split(new char[] { ':' });
foreach (string split in splitData)
{
rowList.Add(split.Trim());
}
}
else
{
length = startPosition[i + 1] - startPosition[i];
rowList.Add(line.Substring(startPosition[i], length).Trim());
}
}
}
}
}
return data;
}
}
}