我有以下文本文件,我使用位置和长度作为规则来获取给定字符串的子字符串值。
ID A B Element Name Element C Length Position Key2
01 PN PNFN USER MID NAM USR 1 1 2 A
....about 60 rows
以下是我如何阅读文本文件并应用文本文件的位置和长度值 到字符串输入。
string input =“AAAAABBBBCCCCDDDDGGGG ......”
**EDIT**
var values = File.ReadLines("file")
.SkipWhile(string.IsNullOrWhiteSpace).Skip(1)
.Select(l => l.Split(new[] {' ', '\t'}, StringSplitOptions.RemoveEmptyEntries));
var array1 = offsets.Select(split => new
{
Element = split[5],
Length = int.Parse(split[7]),
Position = int.Parse(split[8])
});
foreach (var info in array1)
{
string substring = input.Substring(info.Position, info.Length);
Console.WriteLine("Element: '{0}' Value: '{1}'", info.Element, substring);
}
这将只读取14行并打破循环。有什么我做错了吗?感谢
答案 0 :(得分:0)
我使用子字符串而不是空格来查找确切位置:
foreach (var hashtable in from item in offsets
let element = item.Substring(4,2)
let length = Convert.ToInt32(item.Substring(6, 6))
let position = item.Substring(7, 4)
select new Hashtable
{
{"Element", element},
{"Length", length},
{"Position", position}
})