如何解决用C#解析:拆分字符串并应用布局键以创建表
我已经退出编码游戏已有几年了,所以我很生锈-感觉我是从头开始,所以如果这是一个菜鸟问题,我深表歉意。
我有一个包含订单项的文本文件:
> 076-5000-3ABBOTT 1998010700019900119971205000
048-0002-8ABINGDON 1998010700019900119971205000
100-5000-3ABSHER 1998010700019900119971205000
我还有一个布局键:
Blockquote
- 位置代码ID PIC X(10)值“ xxx-xxxx-x”
- 位置名称PIC X(25)
- 当前有效日期PIC X(6)值“ CCYYMM”
- 总电信费率PIC 9(5)7.00%的利率为07000
- 有效日期PIC X(6)值“ CCYYMM”
- 上次结束日期PIC X(6)值“ CCYYMM”
- 先前电信总价PIC 9(5)7.00%的比率为07000
每个字符串的总长度为63。我基本上需要将字符串按PIC X长度进行分割,然后将其转换为标题。 “ Location-code-Id”,最终将是列标题。
这是我目前拥有的:
class ReadFromFile
{
static void Main()
{
string[] lines = System.IO.File.ReadAllLines(@"C:\Files\test.txt");
// Display the file contents by using a foreach loop.
System.Console.WriteLine("Contents of test.txt = ");
foreach (string s in lines)
{
string s = s;
foreach (char c in s)
{
if (s.Length = 10)
{
Console.WriteLine(s.Length);
}
else if (s.Length = 35)
{
Console.WriteLine(s.Length);
}
else
{
Console.WriteLine(s);
}
}
}
// Keep the console window open in debug mode.
Console.WriteLine("Press any key to exit.");
System.Console.ReadKey();
}
}
该代码显然不起作用,并且我还没有编写它来打印文本,我只是想打印出当前长度位置,以便可以从那里开始。此刻很失落。我最终希望将其转换为JSON或CSV。感谢您的帮助,不胜感激。
解决方法
您可以使用子字符串方法和解析来创建一个新对象,以后可以使用LINQ进行过滤和查询。
List<string> lines = new List<string>() {
"076-5000-3ABBOTT 1998010700019900119971205000","048-0002-8ABINGDON 1998010700019900119971205000","100-5000-3ABSHER 1998010700019900119971205000"
};
var data = lines.Select(x => new
{
Code = x.Substring(0,10),Name = x.Substring(10,25),CREDT = DateTime.ParseExact(x.Substring(35,6),"yyyyMM",CultureInfo.InvariantCulture),TCTR = double.Parse(x.Substring(41,5))/1000,PREDT = DateTime.ParseExact(x.Substring(46,PRENDT= DateTime.ParseExact(x.Substring(52,RPETR = double.Parse(x.Substring(58,5))/1000
});
// data would look like this as an array,[
{
"Code": "076-5000-3","Name": "ABBOTT ","CREDT": "1998-01-01T00:00:00","TCTR": 7.0,"PREDT": "1990-01-01T00:00:00","PRENDT": "1997-12-01T00:00:00","RPETR": 5.0
},{
"Code": "048-0002-8","Name": "ABINGDON ",{
"Code": "100-5000-3","Name": "ABSHER ","RPETR": 5.0
}
]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。