【发布时间】:2013-09-06 23:36:21
【问题描述】:
提前感谢您!我正在编写一个应用程序来读取 txt 文件并写入 Excel。从小处着手,我只是想阅读第一行。
Console.WriteLine 正确输出字符串(字符之间有空格),但是当我尝试从字符串中提取字符时出现此错误:附加信息:索引和长度必须引用字符串中的位置.
while ((input = stream.ReadLine()) != null)
{
//ACH HEADER LINE
if (iCurRecLine == 0 && input.IndexOf(HeaderBeginKeyWord) >= 0)
{
Console.WriteLine(input);
RepDate = input.Substring(23, 6).Trim();
RecordTypeCode = input.Substring(0, 1).Trim();
PriorityCode = input.Substring(1, 2).Trim();
ImmDestination = input.Substring(3, 10).Trim();
ImmOrigin = input.Substring(13, 10).Trim();
FileCreatedDate = input.Substring(23, 6).Trim();
FileCreatedTime = input.Substring(29, 4).Trim();
FileIDModifier = input.Substring(33, 1).Trim();
RecordSize = input.Substring(34, 3).Trim();
BlockingFactor = input.Substring(37, 2).Trim();
FormatCode = input.Substring(39, 1).Trim();
Destination = input.Substring(40, 23).Trim();
Origin = input.Substring(63, 23).Trim();
ReferenceCode = input.Substring(86, 8).Trim();
...
}
}
我哪里做错了?
【问题讨论】:
-
这里打印了什么:
Console.WriteLine(input);,或者更好的是输入字段如何? -
谢谢。输入行是这样的,总共有94个字符,最后8位可以是空白或0(x实际上是空白):101x071000301x6759601771308202341F094101ACHxxxxxxxxxxxxxxxxxxxxFISxACHxMILWAUKEExxxxxxxx打印时,正确显示x为空白。不过不确定最后 8 个空格。
-
我知道子字符串从零开始。我仔细查看了索引和长度,我觉得它们看起来不错。根据您的建议,我还尝试更改最后一个字段的索引和长度,但仍然出现相同的错误...
-
@Hing-LunMa:如果你这样做
Console.WriteLine(input.Length),输出是什么?另外,你知道在哪一行抛出异常吗? -
@Jim 好电话。打印长度让我更仔细地查看输入文件,发现他们将最后 14 个字符提交为空而不是空白。谢谢大家的帮助!
标签: c# .net argumentexception mscorlib